Markørobjekt¶

Cursor.__enter__()¶

inngangspunktet for markøren som en kontekstleder. Den returnerer seg selv.

Merk

denne metoden er en utvidelse AV DB API-definisjonen.

Cursor.__exit__()¶

utgangspunktet for markøren som en kontekstleder. Den lukker markøren.

Merk

denne metoden er en utvidelse AV DB API-definisjonen.

Cursor.arraysize

dette lese-skrive attributtet kan brukes til å justere antall rader internlyyfetched og bufret av interne samtaler til databasen når du henter rowsfrom SELECT setninger OG REF PEKERE. Verdien kan drastisk påvirke ytelsen til en spørring, siden den direkte påvirker antall nettverksturer mellom Python og databasen. For metoder somfetchone() og fetchall() endres det ikkehvordan mange rader returneres til søknaden. Forfetchmany() er det standard antall rader å hente.

på grunn av ytelsesfordelene er standard Cursor.arraysize 100 i stedet for 1 SOM DB API anbefaler. Denne verdien betyr at 100 raderhentet av hvert internt anrop til databasen.

Se Tuning Hente Ytelse for mer informasjon.

Cursor.bindarraysize

dette lese-skrive-attributtet angir antall rader som skal bindes om gangen, og brukes når du oppretter variabler via setinputsizes() eller var(). Det er som standard 1 betyr å binde en enkelt rad om gangen.

Merknad

DB API-definisjonen definerer ikke dette attributtet.

Cursor.arrayvar(dataType, verdi)¶

Opprett en matrisevariabel knyttet til markøren for den gitte typen ogstørrelse og returner et variabelt objekt. Verdien er enten aninteger som angir antall elementer som skal tildeles, eller det er en liste ogantall elementer som er tildelt, trekkes fra størrelsen på listen. Hvis verdien er en liste, angis også variabelen med innholdet i listen. Hvisstørrelsen er ikke spesifisert og typen er en streng eller binær, 4000 bytesis allokert. Dette er nødvendig for å sende arrays TIL PL / SQL (i tilfeller der listen kan være tom og typen kan ikke bestemmes automatisk) orreturning arrays FRA PL / SQL.

Matrisevariabler kan bare brukes TIL PL / SQL-assosiative matriser med sammenhengende taster. FOR PL / SQL associative arrays med tynt befolket keysor for varrays og nestede tabeller, må tilnærmingen vist i thisexample brukes.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.bindnames()¶

Returner listen over bind variabelnavn som er bundet til setningen. Merk at astatement må ha blitt utarbeidet først.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.bindvars

dette skrivebeskyttede attributtet gir bind-variablene som brukes for lastexecute. Verdien vil være enten en liste eller en ordbok avhengig avom bindingen ble gjort etter posisjon eller navn. Vær forsiktig nårrefererer dette attributtet. Spesielt bør elementer ikke fjerneseller erstattet.

Merknad

DB API-definisjonen definerer ikke dette attributtet.

Cursor.callfunc(navn, returnType, parametere=, keywordParameters= {})¶

Ring en funksjon med det oppgitte navnet. Returtypen er spesifisert isamme notasjon som kreves av setinputsizes(). Thesequence av parametere må inneholde en oppføring for hver parameter som thefunction forventer. Eventuelle søkeordparametere vil bli inkludert etterposisjonelle parametere. Resultatet av samtalen er returverdien avfunksjon.

Se Pl/SQL Lagrede Funksjoner for et eksempel.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Merk

hvis du har tenkt å ringe Cursor.setinputsizes() på markøren for å gjøre dette anropet, må du merke deg at det første elementet i parameter-listen refererer til returverdien til funksjonen.

Cursor.callproc(navn, parametere=, keywordParameters= {})¶

Ring en prosedyre med det oppgitte navnet. Sekvensen av parametere måinneholder en oppføring for hver parameter som prosedyren forventer. Resultatet av samtalen er en modifisert kopi av inngangssekvensen. Input parametere arevenstre urørt; utgang og input/output parametere er erstattet medmuligens nye verdier. Søkeordparametere vil bli inkludert etterpositional parametere og returneres ikke som en del av utdatasekvensen.

Se Pl / SQL Lagrede Prosedyrer for et eksempel.

Merknad

DB API-definisjonen tillater ikke nøkkelordparametere.

Cursor.close()¶

Lukk markøren nå, i stedet for når __del__ kalles. Den cursorwill være ubrukelig fra dette punktet fremover; En Feil unntak vil bli raisedhvis noen operasjon er forsøkt med markøren.

Cursor.connection

dette skrivebeskyttede attributtet returnerer en referanse til tilkoblingsobjektet påsom markøren ble opprettet.

Merk

dette attributtet er en utvidelse TIL DB API-definisjonen, men det er nevnt I PEP 249 som en valgfri utvidelse.

Cursor.description

dette skrivebeskyttede attributtet er en sekvens av 7-elementsekvenser. Hver av disse følgene inneholder informasjon som beskriver en resultatkolonne: (navn, type, display_size, internal_size, precision, scale, null_ok). Dette attributewill Være Ingen for operasjoner som ikke returnerer rader eller hvis markøren ikke har hatt en operasjon påberopt via metoden execute() ennå.

typen vil være en av databasetypekonstantene definert på modulnivå.

Cursor.execute(erklæring, * * keywordParameters)¶

Utfør en uttalelse mot databasen. SE SQL-Utførelse.

Parametere kan sendes som en ordbok eller sekvens eller som keywordparameters. Hvis parametrene er en ordbok, vil verdiene være bundet avnavn, og hvis parametrene er en sekvens, vil verdiene være bundet avposisjon. Merk at hvis verdiene er bundet av posisjon, rekkefølgen av thevariables er fra venstre til høyre som de oppstår i statementand SQL-setninger behandles annerledes ENN PL / SQL-setninger. Av denne grunn anbefales det generelt å binde parametere etter navn i stedet for posisjon.

Parametere som sendes som en ordbok, er navn-og verdipar. Navnet mapsto bind variabelnavnet som brukes av setningen og verdien kart til thePython verdien du ønsker bundet til bind variabel.

en referanse til setningen vil bli beholdt av markøren. Hvis Ingen eller thesame strengobjekt sendes inn igjen, vil markøren utføre thatstatement igjen uten å utføre en forbered eller rebinding og omdefinere.Dette er mest effektivt for algoritmer der samme setning brukes, menforskjellige parametere er bundet til det (mange ganger). Merk at parameteresom ikke sendes inn under påfølgende henrettelser, vil beholde verdien som ble sendt inn under den siste utførelsen som inneholdt dem.

for maksimal effektivitet når du bruker en setning på nytt, er det best å bruke metodensetinputsizes() til å angi parametertyper og størrelser på forhånd; Spesielt er ingen antas å være en streng oflength 1 så noen verdier som senere bundet som tall eller datoer vil raise Et TypeError unntak.

hvis setningen er en spørring, returneres markøren som en bekvemmelighet til thecaller (slik at den kan brukes direkte som en iterator over radene i thecursor); ellers returneres None.

Merknad

DB API-definisjonen definerer ikke returverdien for denne metoden.

Cursor.executemany(Statement, parameters, batcherrors=False, arraydmlrowcounts=False)¶

Forbered en setning For utførelse mot en database og utfør den deretter mot alle parametertilordninger eller sekvenser som finnes i sekvensparametrene. Se Utføring Av Satsvis Setning og Masseinnlasting.

setningen behandles på samme måte som metoden execute() administrerer den. Hvis størrelsen på bufferne tildelt for noen avparametrene overstiger 2 GB, vil du motta feilen » DPI-1015: matrisestørrelseof < n > er for stor», der < n > varierer med størrelsen på hvert element som er allokert i bufferen. Hvis du får denne feilen, må du redusere antallelementer i sekvensparametrene.

hvis det ikke er noen parametere, eller parametere tidligere har blitt bundet, kan antall iterasjoner angis som et heltall i stedet for å måtte gi en liste over tomme tilordninger eller sekvenser.

når true, gjør batcherrors parameter batch feil støtte withinOracle og sikrer at samtalen lykkes selv om et unntak finner stedi en eller flere av parametersekvensen. Feilene kan da beretrieved ved hjelp av getbatcherrors().

når sann, gjør arraydmlrowcounts-parameteren dml-radantall til beretrieved fra Oracle etter at metoden er fullført. Raden teller canthen hentes ved hjelp getarraydmlrowcounts().

både parameteren batcherrors og parameteren arraydmlrowcounts kan bare være sann når du utfører en insert, update, delete eller flett-setning; i alleandre tilfeller vil en feil bli hevet.

for maksimal effektivitet er det best å bruke metoden setinputsizes() til å angi parametertyper og størrelser på forhånd; Spesielt antas Ingen å være en streng med lengde 1, slik at eventuelle verdier som senere er bundet som tall eller datoer, vil øke Et TypeError-unntak.

Cursor.executemanyprepared(numiters)¶

Utfør den tidligere forberedte og bundne setningen det gitte antall ganger. Variablene som er bundet, må allerede være satt til ønsket verdi før dette anropet utføres. Denne metoden ble designet for thecase hvor optimal ytelse er nødvendig som det kommer på bekostning ofcompatibility MED DB API.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Utdatert siden versjon 6.4: Bruk executemany() i stedet Med Ingen for statementargument og et heltall for parameterargumentet.

Cursor.fetchall()¶

Hent alle (gjenværende) rader av et spørringsresultat, og returner dem som en liste over ganger. En tom liste returneres hvis ingen flere rader er tilgjengelige. Merk atmarkørens arraysize-attributt kan påvirke ytelsen til detteoperasjon, som internt leser fra databasen, gjøres i batchesom svarer til arraysize.

et unntak heves hvis forrige anrop til execute() ikke ga noen resultatsett eller ingen anrop ble utstedt ennå.

Se Hente Metoder for et eksempel.

Cursor.fetchmany()¶

Hent det neste settet med rader i et spørringsresultat, og returner en liste over tuples.An tom liste returneres hvis ingen flere rader er tilgjengelige. Vær oppmerksom på at thecursors arraysize-attributt kan påvirke ytelsen til denne operasjonen.

antall rader som skal hentes, er spesifisert av parameteren. Hvis det ikke er gitt, bestemmer markørens arraysize-attributt antall rader som skal befetched. Hvis antall rader som skal hentes, er færre enn antallet forespurte, returneres færre rader.

et unntak heves hvis forrige anrop til execute() ikke ga noen resultatsett eller ingen anrop ble utstedt ennå.

Se Hente Metoder for et eksempel.

Cursor.fetchone()¶

Hent neste rad i et spørringsresultatsett, og returner en enkelt tuppel Eller Ingennår det ikke er flere data tilgjengelig.

et unntak heves hvis forrige anrop til execute() ikke ga noen resultatsett eller ingen anrop ble utstedt ennå.

Se Hente Metoder for et eksempel.

Cursor.fetchraw()¶

Hent det neste settet med rader av et spørringsresultat i de interne bufferne for de definerte variablene for markøren. Antall rader faktisk fetchedis returnert. Denne metoden ble designet for saken der optimalperformance er nødvendig som det kommer på bekostning av kompatibilitet meddb API.

et unntak heves hvis forrige anrop til execute() ikke ga noen resultatsett eller ingen anrop ble utstedt ennå.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.fetchvars

dette skrivebeskyttede attributtet angir listen over variabler som er opprettet for den siste spørringen som ble utført på markøren. Vær forsiktig nårrefererer dette attributtet. Spesielt bør elementer ikke fjerneseller erstattet.

Merknad

DB API-definisjonen definerer ikke dette attributtet.

Cursor.getarraydmlrowcounts()¶

Hent dml-radtellingen etter et anrop til executemany() med arraydmlrowcounts aktivert. Dette vil returnere en liste over heltall som svarer til antall rader som er berørt av dml-setningen for hvert element i matrisen som sendes til executemany().

Merk

DB API-definisjonen definerer ikke denne metoden, og den er bare tilgjengelig For Oracle 12.1 og høyere.

Cursor.getbatcherrors()¶

Hent unntakene som fant sted etter et anrop tilexecutemany() med batcherrors aktivert. Dette vil returnere alist Av Feilobjekter, en feil for hver iterasjon som mislyktes. Offsetetkan bestemmes ved å se på offset-attributtet til feilobjektet.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.getimplicitresults()¶

Returnere en liste over pekere som tilsvarer implisitte resultater madeavailable fra EN PL / SQL blokk eller prosedyre uten bruk av UT refcursor parametere. Pl / SQL-blokken eller prosedyren åpner markørene ogmarkerer dem for retur til klienten ved hjelp av prosedyrendbms_sql.retur_resultat. Markører returnert på denne måten bør ikke værelukket. De vil bli lukket automatisk av den overordnede markøren når det isclosed. Lukke den overordnede markøren vil oppheve pekere returnert avdenne metoden.

Nytt i versjon 5.3.

Obs!

DB API-definisjonen definerer ikke denne metoden, og den er bare tilgjengelig For Oracle Database 12.1 (både klient og server må være på dette nivået eller høyere). Det er mest som DB API-metoden nextset (), meni motsetning til den metoden (som krever at neste resultatsett overskriver gjeldende resultatsett), returnerer denne metoden markører som kan befetched uavhengig av hverandre.

Cursor.inputtypehandler

dette lese-skrive-attributtet angir en metode som kalles for hver verdi som er bundet til en setning som utføres på markøren, og overstyrer attributetmed samme navn på tilkoblingen hvis det er angitt. Metoden signatur ishandler (markør, verdi, arraysize) og returverdien forventes å være avariable objekt eller Ingen i så fall en standard variabel objekt vil becreated. Hvis dette attributtet er Ingen, brukes verdien av attributtet medsamme navn på tilkoblingen.

Merk

dette attributtet er en utvidelse AV DB API-definisjonen.

Cursor.__iter__()¶

Returnerer markøren selv som skal brukes som en iterator.

Merk

denne metoden er en utvidelse TIL DB API-definisjonen, men den er nevnt I PEP 249 som en valgfri utvidelse.

Cursor.lastrowid

dette skrivebeskyttede attributtet returnerer rowid for den siste raden endret av thecursor. Hvis ingen rad ble endret av den siste operasjonen som ble utført på thecursor, returneres verdien Ingen.

Nytt i versjon 7.3.

Cursor.outputtypehandler

dette read-write attributtet angir en metode som kalles for hver kolonne som skal hentes fra denne markøren. Metoden signatur ihandler (markør, navn, defaultType, lengde, presisjon, skala) og returverdien forventes å være et variabelt objekt eller Ingen i så fall vil et defaultvariable objekt bli opprettet. Hvis dette attributtet Er Ingen, brukes verdien avattributtet med samme navn på tilkoblingen i stedet.

Se Endre Hentede Datatyper med Behandlere For Utskriftstype.

Merk

dette attributtet er en utvidelse AV DB API-definisjonen.

Cursor.parse(statement)¶

dette kan brukes til å analysere en setning uten å utføre den (dette trinnet gjøres automatisk av Oracle når en setning utføres).

Merknad

DB API-definisjonen definerer ikke denne metoden.

du kan analysere ALLE dml-eller DDL-setninger. DDL-uttalelser utføresumiddelbart og en underforstått forpliktelse finner sted.

Cursor.prefetchrows

dette lese-skrive-attributtet kan brukes til å justere antall rader som theOracle Client library henter når EN SELECT-setning utføres. Thisvalue kan redusere antall rundturer til databasen som kreves for å hente rader, men på bekostning av ekstra minne. Angi denne verdien til 0kan være nyttig når tidspunktet for henting må kontrolleres eksplisitt.

Se Tuning Hente Ytelse for mer informasjon.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.prepare(statement)¶

dette kan brukes før en samtale til execute() for å definere uttalelsen som vil bli utført. Når dette er gjort, vil forberedefasen ikke utføres når anropet til execute() er gjort med ett eller samme strengobjekt som setningen. Hvis spesifisertuttalelse vil bli returnert til setningsbufferen med den oppgitte taggen. Se Oracle dokumentasjon for mer informasjon om setningen cache.

Se Statement Caching for mer informasjon.

Merknad

DB API-definisjonen definerer ikke denne metoden.

Cursor.rowcount

dette skrivebeskyttede attributtet angir antall rader som er hentet fra markøren (for select-setninger), som er berørt av operasjonen(for insert, update, delete og mergestatements), eller antall vellykkede kjøringer av setningen (FOR PL/SQL-setninger).

Cursor.rowfactory

dette lese-skrive-attributtet angir en metode for å ringe for hver rad som er retrieved fra databasen. Vanligvis returneres en tuple for hver radmen hvis dette attributtet er angitt, kalles metoden med tupelen som normalt returneres, og resultatet av metoden returneres i stedet.

Se Endre Spørringsresultater med Rowfactories.

Merknad

DB API-definisjonen definerer ikke dette attributtet.

Cursor.scroll(verdi = 0, modus= «relativ»)¶

Rull markøren i resultatsettet til en ny posisjon i henhold tilmodus.

hvis modus er «relativ» (standardverdien), blir verdien tatt som en offsetto gjeldende posisjon i resultatsettet. Hvis satt til «absolutt», valuestates en absolutt målposisjon. Hvis satt til «først», er markøren plassert på første rad, og hvis satt til» sist», er markøren satt til den siste raden i resultatsettet.

det oppstår en feil hvis modusen er «relativ» eller «absolutt», og scrolloperasjonen vil plassere markøren utenfor resultatsettet.

Nytt i versjon 5.3.

denne metoden er en utvidelse TIL DB API-definisjonen, men den er nevnt I PEP 249 som en valgfri utvidelse.

Cursor.scrollable

dette lese-skrive boolske attributtet angir om markøren kan værerullert eller ikke. Som standard kan ikke pekere rulles, da serverresources og responstider er større enn ikke-rullbare pekere. Thisattribute er merket og tilsvarende modus satt I Oracle når du kallermetoden execute().

Nytt i versjon 5.3.

Obs!

DB API-definisjonen definerer ikke dette attributtet.

Cursor.setinputsizes(*args, **keywordArgs)¶

dette kan brukes før en samtale til execute(),callfunc() eller callproc() til forhåndsdefinerte områder for operasjonens parametere. Hver parameter skal være atype-objekt som svarer til inngangen som skal brukes, eller det skal være aninteger som angir maksimal lengde på en strengparameter. Bruk keywordparameters ved binding av navn og posisjonsparametere ved binding byposisjon. Singleton Ingen kan brukes som parameter når du brukerposisjonelle parametere for å indikere at ingen plass skal reserveres for thatposition.

Merk

hvis du planlegger å bruke callfunc(), vær oppmerksom på at den første parameteren i listen refererer til returverdien til funksjonen.

Cursor.setoutputsize(størrelse)¶

denne metoden gjør ingenting og beholdes utelukkende for kompatibilitet med theDB API. Modulen tildeler automatisk så mye plass som nødvendig for å fetchLONG OG LANGE RÅ kolonner (eller CLOB som streng og BLOB som byte).

Cursor.statement

dette skrivebeskyttede attributtet inneholder strengobjektet som tidligere ble behandlet med prepare() eller utført medexecute().

Merknad

DB API-definisjonen definerer ikke dette attributtet.

Cursor.var(dataType)¶

Opprett en variabel med de angitte egenskapene. Denne metoden var designet for bruk MED pl/SQL inn / ut variabler hvor lengden eller typecannot bestemmes automatisk Fra Python objekt føres inn eller foruse i input og output type handlers definert på pekere eller tilkoblinger.

dataType-parameteren angir typen data som skal lagres ivariabelen. Dette bør være en avdatabase type konstanter, DB API konstanter, en objekttype returnert fra metoden Connection.gettype() eller enav Følgende Python-typer:

Python Type Databasetype
bool cx_Oracle.DB_TYPE_BOOLEAN
bytes cx_Oracle.DB_TYPE_RAW
datetime.dato cx_Oracle.DB_TYPE_DATE
datetime.datetime cx_Oracle.DB_TYPE_DATE
datetime.timedelta cx_Oracle.DB_TYPE_INTERVAL_DS
desimal.Desimal cx_Oracle.DB_TYPE_NUMBER
flyte cx_Oracle.DB_TYPE_NUMBER
int cx_Oracle.DB_TYPE_NUMBER
str cx_Oracle.DB_TYPE_VARCHAR

størrelsesparameteren angir lengden på streng-og råvariabler og isignoreres i alle andre tilfeller. Hvis ikke angitt for streng-og råvariabler,brukes verdien 4000.

parameteren arraysize angir antall elementer variabelen vil ha. Hvis ikke angitt bind array størrelse (vanligvis 1) brukes. Når avariable er opprettet i en utgang type handler denne parameteren bør setto markøren matrisestørrelse.

parameterne inconverter og outconverter angir metoder som brukes til å konvertere verdier til / fra databasen. Mer informasjon finner du iseksjonen om variable objekter.

typename-parameteren angir navnet PÅ EN SQL-objekttype og må spesifiseres ved bruk av type cx_Oracle.OBJECT med mindre typeobjektet ble sendt direkte som den første parameteren.

parameteren encodingErrors angir hva som skal skje når dekodingbyte-strenger hentes fra databasen til strenger. Det bør være en av verdiene som er notert i builtindecodefunction.

Merknad

DB API-definisjonen definerer ikke denne metoden.