Markørobjekt¶

Cursor.__enter__()¶

indgangspunktet for markøren som konteksthåndtering. Det vender tilbage selv.

Bemærk

denne metode er en udvidelse til DB API-definitionen.

Cursor.__exit__()¶

udgangsstedet for markøren som konteksthåndtering. Det lukker markøren.

Bemærk

denne metode er en udvidelse til DB API-definitionen.

Cursor.arraysize

denne læse-skrive attribut kan bruges til at tune antallet af rækker internfetched og buffered af interne opkald til databasen, når du henter rækker fra udvalgte udsagn og REF markører. Værdien kan drastisk påvirkeydelsen af en forespørgsel, da den direkte påvirker antallet af netværks-rundture mellem Python og databasen. For metoder somfetchone() og fetchall() ændres det ikkehvor mange rækker returneres til applikationen. Forfetchmany() er det standard antal rækker, der skal hentes.

på grund af ydelsesfordelene er standard Cursor.arraysize 100i stedet for den 1, som DB API anbefaler. Denne værdi betyder, at 100 rækkerhentes af hvert internt opkald til databasen.

se Tuning Hent ydeevne for mere information.

Cursor.bindarraysize

denne læse-skrive attribut angiver antallet af rækker til at binde ad gangenog bruges, når du opretter variabler via setinputsizes() ellervar(). Det er som standard 1 betyder at binde en enkelt række ad gangen.

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.arrayvar(dataType, værdi) lit

Opret en array-variabel, der er knyttet til markøren for den givne type ogstørrelse og returner et variabelt objekt. Værdien er enten aninteger, der angiver antallet af elementer, der skal allokeres, eller det er en liste ogAntallet af tildelte elementer trækkes fra listens størrelse. Hvis værdien er en liste, indstilles variablen også med indholdet på listen. Hvisstørrelsen er ikke angivet, og typen er en streng eller binær, 4000 bytes tildelt. Dette er nødvendigt for at overføre arrays til PL/kvm (i tilfælde hvor listen kan være tom, og typen ikke kan bestemmes automatisk) eller vende arrays fra PL/kvm.

Array variabler kan kun bruges til PL/kvm associative arrays med sammenhængende nøgler. For pl / HL associative arrays med tyndt befolkede nøgler eller for varrays og indlejrede tabeller skal den fremgangsmåde, der er vist i dette eksempel, anvendes.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.bindnames()¶

returner listen over bind variabelnavne bundet til sætningen. Bemærk, at astatement skal være forberedt først.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.

bindvars

denne skrivebeskyttede attribut giver bindingsvariablerne, der bruges til den sidste udførelse. Værdien vil enten være en liste eller en ordbog afhængigt afom binding blev udført efter position eller navn. Pas på, nårhenviser til denne attribut. Især bør elementer ikke fjerneseller udskiftes.

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.callfunc(navn, returtype, parametre=, nøgleordparametre= {}) liter

ring til en funktion med det givne navn. Returtypen er angivet isamme notation som krævet af setinputsizes(). Sekvensen af parametre skal indeholde en post for hver parameter, som funktionen forventer. Eventuelle nøgleordsparametre vil blive inkluderet efterpositionsparametre. Resultatet af opkaldet er returværdien affunktion.

se Pl/kvm lagrede funktioner for et eksempel.

Bemærk

DB API-definitionen definerer ikke denne metode.

Bemærk

hvis du har til hensigt at ringe Cursor.setinputsizes() på markørenfør du foretager dette opkald, skal du bemærke, at det første element iparameterlisten refererer til returværdien af funktionen.

Cursor.callproc(navn, parametre=, nøgleordparametre= {}) liter

ring til en procedure med det givne navn. Sekvensen af parametre skalindeholder en post for hver parameter, som proceduren forventer. Resultatetaf opkaldet er en modificeret kopi af indgangssekvensen. Inputparametre er uberørt; output-og input/output-parametre erstattes med muligvis nye værdier. Nøgleordsparametre vil blive inkluderet efterpositionsparametre og returneres ikke som en del af outputsekvensen.

se Pl/kvm lagrede procedurer for et eksempel.

Bemærk

DB API-definitionen tillader ikke nøgleordsparametre.

Cursor.close()¶

Luk markøren nu, i stedet for når _ _ del _ _ kaldes. Markøren vil være ubrugelig fra dette punkt fremad; en fejl undtagelse vil blive hævethvis enhver handling forsøges med markøren.

Cursor.connection

denne skrivebeskyttede attribut returnerer en henvisning til forbindelsesobjektet påsom markøren blev oprettet.

Bemærk

denne attribut er en udvidelse til DB API-definitionen, men den nævnes i PEP 249 som en valgfri udvidelse.

Cursor.description

denne skrivebeskyttede attribut er en sekvens af sekvenser med 7 elementer. Hver af dissesekvenser indeholder oplysninger, der beskriver en resultatkolonne: (navn,type, display_størrelse, internal_størrelse, præcision, skala, null_ok). Denne attribut vil ikke være nogen for operationer, der ikke returnerer rækker, eller hvis markøren endnu ikke har haft en operation påberåbt via execute() – metoden.

typen vil være en af databasetypekonstantendefineret på modulniveau.

Cursor.execute(erklæring, * * nøgleordparametre).

udfør en erklæring mod databasen. Se eksekvering.

parametre kan overføres som en ordbog eller sekvens eller som nøgleordparametre. Hvis parametrene er en ordbog, vil værdierne blive bundet afnavn, og hvis parametrene er en sekvens, vil værdierne blive bundet afposition. Bemærk, at hvis værdierne er bundet af position, er rækkefølgen af variablerne fra venstre mod højre, da de er stødt på i erklæringen, og KVL-udsagn behandles anderledes end PL/KVL-udsagn. Af denne grund anbefales det generelt at binde parametre ved navn i stedet for efter position.

parametre bestået som en ordbog er navn og værdi par. Navnet korttil bind variabelnavnet, der bruges af udsagnet, og værdien kortlægges til den python-værdi, du ønsker bundet til den bindingsvariabel.

en henvisning til udsagnet bevares af markøren. Hvis intet eller det samme strengobjekt sendes ind igen, markøren udfører denne erklæring igen uden at udføre en forberedelse eller rebinding og omdefinering.Dette er mest effektivt for algoritmer, hvor den samme sætning anvendes, menforskellige parametre er bundet til det (mange gange). Bemærk, at parametre, der ikke overføres under efterfølgende henrettelser, bevarer den værdi, der blev overført under den sidste udførelse, der indeholdt dem.

for maksimal effektivitet ved genbrug af en erklæring er det bedst at brugesetinputsizes() – metoden til at angive parametertyperne ogstørrelser forud for tiden; i særdeleshed, ingen antages at være en streng af længde 1 så alle værdier, der senere er bundet som tal eller datoer, hæver en TypeError-undtagelse.

hvis sætningen er en forespørgsel, returneres markøren som en bekvemmelighed til thecaller (så den kan bruges direkte som en iterator over rækkerne i thecursor); ellers returneres None.

Bemærk

DB API-definitionen definerer ikke returværdien af denne metode.

Cursor.executemany(statement, parametre, batcherrors=False, arraydmlroccounts=False)

Forbered en erklæring til udførelse mod en database og udfør derefter denmod alle parameterkort eller sekvenser, der findes i sekvensparametrene. Se udførelse af Batcherklæring og Bulkindlæsning.

erklæringen styres på samme måde som execute() – metoden styrer den. Hvis størrelsen af bufferne tildelt til nogen afparametre overstiger 2 GB, vil du modtage fejlen ” DPI-1015: array størrelseaf < n>er for stor”, hvor < n> varierer med størrelsen af hvert element, der er tildelt i bufferen. Hvis du modtager denne fejl, skal du reducere antallet afelementer i sekvensparametrene.

hvis der ikke er nogen parametre, eller hvis parametre tidligere er blevet bundet, kan antallet af iterationer angives som et heltal i stedet for at skulle give en liste over tomme kortlægninger eller sekvenser.

når det er sandt, muliggør batcherrors-parameteren batcherrors understøttelse af batchfejl inden fororacle og sikrer, at opkaldet lykkes, selvom en undtagelse finder sted i en eller flere af sekvensen af parametre. Fejlene kan derefter beretrieved hjælp getbatcherrors().

når det er sandt, giver parameteren arraydml-rækketællinger mulighed for at beretrieved fra Oracle, efter at metoden er afsluttet. Rækketællingerne kan derefter hentes ved hjælp af getarraydmlrowcounts().

både batcherrors-parameteren og parameteren arraydmlroccounts kan kunvære sand, når du udfører en indsæt, opdater, slet eller flet erklæring; i alleandre tilfælde vil en fejl blive rejst.

for maksimal effektivitet er det bedst at brugesetinputsizes() – metoden til at specificere parametertyperne ogstørrelser på forhånd; især antages ingen at være en streng af længde 1, så alle værdier, der senere er bundet som tal eller datoer, vil hæve en TypeError undtagelse.

Cursor.executemanyprepared(6587 > udfør den tidligere forberedte og bundne erklæring det givne antal gange. De variabler, der er bundet, skal allerede være indstillet til deresønsket værdi, før dette opkald foretages. Denne metode er designet til det tilfælde, hvor optimal ydeevne er påkrævet, da det kommer på bekostning afkompatibilitet med DB API.

Bemærk

DB API-definitionen definerer ikke denne metode.

forældet siden version 6.4: brug executemany() i stedet med ingen for statementargumentet og et heltal for parameterargumentet.

Cursor.fetchall()¶

Hent alle (resterende) rækker i et forespørgselsresultat, og returner dem som en liste overupler. En tom liste returneres, hvis der ikke er flere rækker tilgængelige. Bemærk, at markørens arraystørrelsesattribut kan påvirke udførelsen af denne operation, som internt læses fra databasen udføres i batchersvarende til arraystørrelsen.

en undtagelse hæves, hvis det forrige opkald til execute() ikke producerede noget resultatsæt, eller der endnu ikke blev udstedt noget opkald.

se Fetch metoder for et eksempel.

Cursor.fetchmany()¶

hente det næste sæt rækker af et forespørgselsresultat, returnere en liste over tuples.An tom liste returneres, hvis der ikke er flere rækker tilgængelige. Bemærk, atcursors arraystørrelsesattribut kan påvirke udførelsen af denne operation.

antallet af rækker, der skal hentes, er angivet af parameteren. Hvis det ikke er givet, bestemmer markørens arraystørrelsesattribut antallet af rækker, der skal hentes. Hvis antallet af rækker, der skal hentes, er færre end det ønskede beløb, returneres færre rækker.

en undtagelse hæves, hvis det forrige opkald til execute() ikke producerede noget resultatsæt, eller der endnu ikke blev udstedt noget opkald.

se Fetch metoder for et eksempel.

Cursor.fetchone()¶

Hent den næste række i et forespørgselsresultatsæt, returnerer en enkelt tupel eller Ingennår der ikke er flere data tilgængelige.

en undtagelse hæves, hvis det forrige opkald til execute() ikke producerede noget resultatsæt, eller der endnu ikke blev udstedt noget opkald.

se Fetch metoder for et eksempel.

Cursor.fetchraw()¶

Hent det næste sæt rækker af et forespørgselsresultat i de interne buffere afde definerede variabler for markøren. Antallet af rækker faktisk henteter returneret. Denne metode er designet til det tilfælde, hvor optimalperformance er påkrævet, da det kommer på bekostning af kompatibilitet med DB API.

en undtagelse hæves, hvis det forrige opkald til execute() ikke producerede noget resultatsæt, eller der endnu ikke blev udstedt noget opkald.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.fetchvars

denne skrivebeskyttede attribut angiver listen over variabler, der er oprettet forden sidste forespørgsel, der blev udført på markøren. Pas på, nårhenviser til denne attribut. Især bør elementer ikke fjerneseller udskiftes.

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.getarraydmlrowcounts()¶

Hent DML-rækketællingerne efter et opkald til executemany()med arraydml-antal aktiveret. Dette returnerer en liste over heltalsvarende til antallet af rækker, der er berørt af DML-erklæringen for hvert element i arrayet, der sendes til executemany().

Bemærk

DB API-definitionen definerer ikke denne metode, og den er kun tilgængelig for Oracle 12.1 og nyere.

Cursor.getbatcherrors()¶

Hent de undtagelser, der fandt sted efter et opkald tilexecutemany() med batcherrors aktiveret. Dette vil returnere alist af Fejlobjekter, en fejl for hver iteration, der mislykkedes. Offsetkan bestemmes ved at se på offset-attributten for fejlobjektet.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.getimplicitresults()¶

returner en liste over markører, der svarer til implicitte resultater, der er tilgængelige fra en blok eller procedure uden brug af refcursorparametre. Blokeringen eller proceduren åbner markørerne ogmarkerer dem for at vende tilbage til klienten ved hjælp af procedurenbms_cr.return_resultat. Markører returneret på denne måde bør ikke værelukket. De lukkes automatisk af den overordnede markør, når den er lukket. Lukning af overordnet markør vil ugyldiggøre markørerne returneret afDenne metode.

nyt i version 5.3.

Bemærk

DB API-definitionen definerer ikke denne metode, og den er kun tilgængelig for Oracle Database 12.1 (både klient og server skal være på dette niveau eller højere). Det er mest som DB API-metoden næste sæt (), meni modsætning til den metode (som kræver, at det næste resultatsæt overskriver det aktuelle resultatsæt), returnerer denne metode markører, der kan hentes uafhængigt af hinanden.

Cursor.inputtypehandler

denne læse-skrive-attribut angiver en metode, der kaldes for hver værdi, der er bundet til en sætning, der udføres på markøren, og tilsidesætter attributten med samme navn på forbindelsen, hvis den er angivet. Metoden signatur ishandler (markør, værdi, arraystørrelse) og returværdien forventes at være avariable objekt eller ingen i hvilket tilfælde en standard variabel objekt vil becreated. Hvis denne attribut ikke er nogen, er værdien af attributten medsamme navn på forbindelsen bruges.

Bemærk

denne attribut er en udvidelse til DB API-definitionen.

Cursor.__iter__()¶

returnerer markøren selv, der skal bruges som en iterator.

Bemærk

denne metode er en udvidelse til DB API-definitionen, men den er nævnt i PEP 249 som en valgfri udvidelse.

Cursor.lastrowid

denne skrivebeskyttede attribut returnerer rækken for den sidste række, der er ændret af cursor. Hvis ingen række blev ændret af den sidste handling udført påcursor, værdien ingen returneres.

nyt i version 7.3.

Cursor.outputtypehandler

denne læse-skrive-attribut angiver en metode, der kaldes for hver kolonne, der skal hentes fra denne markør. Metodesignaturen ishandler (markør, navn, standardtype, længde, præcision, skala) og returværdien forventes at være et variabelt objekt eller ingen, i hvilket tilfælde der oprettes et standardvariabelt objekt. Hvis denne attribut ikke er nogen, er værdien afattributten med samme navn på forbindelsen bruges i stedet.

se Ændring af hentede datatyper med Output type handlere.

Bemærk

denne attribut er en udvidelse til DB API-definitionen.

Cursor.parse(6587>dette kan bruges til at analysere en erklæring uden faktisk at udføre den (dette trin udføres automatisk af Oracle, når en erklæring udføres).

Bemærk

DB API-definitionen definerer ikke denne metode.

Bemærk

du kan analysere enhver DML-eller DDL-erklæring. DDL-udsagn udføresstraks og en underforstået forpligtelse finder sted.

Cursor.prefetchrows

denne læse-skrive-attribut kan bruges til at indstille antallet af rækker, som theOracle Client library henter, når en SELECT-sætning udføres. Denne værdi kan reducere antallet af rundrejser til databasen, der krævesat hente rækker, men på bekostning af ekstra hukommelse. Indstilling af denne værdi til 0kan være nyttig, når tidspunktet for hentninger skal kontrolleres eksplicit.

se Tuning Hent ydeevne for mere information.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.prepare(6587 > dette kan bruges før et opkald tilexecute()for at definere den erklæring, der skal udføres. Når dette er gjort, vil forberedelsesfasen ikke udføres, når opkaldet tilexecute()er lavet medikke eller det samme strengobjekt som udsagnet. Hvis det er angiveterklæring returneres til udsagnscachen med det givne tag. Se Oracle-dokumentationen for at få flere oplysninger om udsagnscachen.

se Erklæring Caching for mere information.

Bemærk

DB API-definitionen definerer ikke denne metode.

Cursor.rowcount

denne skrivebeskyttede attribut angiver antallet af rækker, der aktuelt er hentet fra markøren (for udvalgte udsagn), der er påvirket af handlingen(for indsæt, opdater, slet og mergestatements) eller antallet af vellykkede eksekveringer af sætningen (for pl/kvm-udsagn).

Cursor.rowfactory

denne læse-skrive attribut angiver en metode til at kalde for hver række, der er retrieved fra databasen. Normalt returneres en tupel for hver rækkemen hvis denne attribut er indstillet, kaldes metoden med tuplen, som normalt ville blive returneret, og resultatet af metoden returneresi stedet.

se Ændring af forespørgselsresultater med Rækkefabrikker.

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.scroll(værdi=0, mode=” relativ”) Lira

Rul markøren i resultatet indstillet til en ny position i henhold tilmode.

hvis tilstanden er “relativ” (standardværdien), tages værdien som en offsetto den aktuelle position i resultatsættet. Hvis indstillet til” absolut”, værdiangiver en absolut målposition. Hvis den er indstillet til “først”, er markøren placeret i den første række, og hvis den er indstillet til “sidste”, er markøren indstillet tilden sidste række i resultatsættet.

der opstår en fejl, hvis tilstanden er “relativ” eller “absolut”, og rulleoperationen placerer markøren uden for resultatsættet.

nyt i version 5.3.

Bemærk

denne metode er en udvidelse til DB API-definitionen, men den nævnes i PEP 249 som en valgfri udvidelse.

Cursor.scrollable

denne læse-skrive boolsk attribut angiver, om markøren kan væreskrollet eller ej. Som standard kan markører ikke rulles, da serverressourcer og responstider er større end ikke-rullbare markører. Denne attribut er markeret, og den tilsvarende tilstand er indstillet i Oracle, når du ringer til metoden execute().

nyt i version 5.3.

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.

setinputsizes(*args, * * nøgleordargs) LR

dette kan bruges før et opkald til execute(),callfunc() eller callproc() til foruddefinememory områder for operationens parametre. Hver parameter skal være atype objekt svarende til det input, der skal bruges, eller det skal være aninteger, der angiver den maksimale længde af en strengparameter. Brug nøgleordparametre, når du binder efter navn og positionsparametre, når du binder vedposition. Singleton None kan bruges som en parameter, når du brugerpositionsparametre for at indikere, at der ikke skal reserveres plads til den position.

Bemærk

hvis du planlægger at bruge callfunc() så vær opmærksom på, atførste parameter i listen refererer til returværdien af funktionen.

Cursor.setoutputsize(6587 > denne metode gør intet og bevares udelukkende for kompatibilitet med THEDB API. Modulet tildeler automatisk så meget plads som nødvendigt for at hente lange og lange rå kolonner (eller CLOB som streng og BLOB som bytes).Cursor.statement

denne skrivebeskyttede attribut giver det strengobjekt, der tidligere varforberedt med prepare() eller udført medexecute().

Bemærk

DB API-definitionen definerer ikke denne attribut.

Cursor.var(dataType) pri

Opret en variabel med de angivne egenskaber. Denne metode blev designet til brug med ind/ud variabler, hvor længden eller typen ikke kan bestemmes automatisk ud fra Python-objektet, der er sendt ind eller til brug i input-og outputtypehåndterere defineret på markører eller forbindelser.

dataType-parameteren angiver den type data, der skal gemmes ivariablen. Dette skal være en af dedatabase type konstanter, DB API konstanter, en objekttype returneret fra metoden Connection.gettype() eller enaf 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
decimal.Decimal cx_Oracle.DB_TYPE_NUMBER
float cx_Oracle.DB_TYPE_NUMBER
int cx_Oracle.DB_TYPE_NUMBER
str cx_Oracle.DB_TYPE_VARCHAR

størrelsesparameteren angiver længden af streng-og råvariabler og erignoreret i alle andre tilfælde. Hvis det ikke er angivet for streng-og råvariabler,bruges værdien 4000.

parameteren arraystørrelse angiver antallet af elementer, som variablen vil have. Hvis ikke angivet bind array størrelse (normalt 1) anvendes. Når avariable oprettes i en outputtypehåndterer, skal denne parameter indstilles til markørens array-størrelse.

parametrene inconverter og outconverter angiver metoder, der anvendes tilkonvertering af værdier til / fra databasen. Flere oplysninger findes isektionen om variable objekter.

parameteren typenavn angiver navnet på en objekttype og skal specificeres, når du bruger type cx_Oracle.OBJECT, medmindre typeobjektet blev sendt direkte som den første parameter.

parameteren encodingErrors angiver, hvad der skal ske, når dekodningbyte strenge hentet fra databasen i strenge. Det skal være en af de værdier, der er noteret i den byggedeindecodefunction.

Bemærk

DB API-definitionen definerer ikke denne metode.