BIND comando
Il comando BIND richiama il programma di utilità di collegamento, che prepara istruzioni SQL memorizzate nel file di collegamento generato dal precompilatore e crea un package memorizzato nel database.
Ambito
Questo comando può essere emesso da qualsiasi partizione del database in db2nodes.cfg. Aggiorna i cataloghi database sulla partizione del database del catalogo. I suoi effetti sono visibili a tutte le partizioni del database.
Autorizzazione
- Autorizzazione DBADM
- Se viene specificato EXPLAIN Only, è sufficiente un'autorità EXPLAIN o un'autorità che include implicitamente EXPLAIN.
- Se un pacchetto non esiste, uno dei seguenti privilegi:
- Se il nome schema del pacchetto non esiste, BINDADD e IMPLICIT_SCHEMA autorità sul database.
- Se il nome schema del pacchetto esiste:
- Autorità SCHEMAADM sullo schema
- BINDADD authority e privilegio CREATEIN sullo schema
- Se il pacchetto esiste, uno dei seguenti privilegi:
- Autorità SCHEMAADM sullo schema
- Privilegio ALTERIN sullo schema
- BIND privilegio sul pacchetto
- Privilegio INSERT sulle tabelle spiegate
- Autorizzazione DATAACCESS
L'utente ha inoltre bisogno di tutti i privilegi richiesti per compilare eventuali istruzioni SQL statiche nell'applicazione. I privilegi concessi ai gruppi non vengono utilizzati per il controllo di autorizzazione delle istruzioni statiche.
Connessione obbligatorio
Database. Se la connessione implicita è abilitata, viene stabilita una connessione al database predefinito.
Sintassi del comando
- For Db2
- For Db2® on servers other than Linux®, Windows and UNIX
- Notes:
- 1 If the server does not support the DATETIME DEF option, it is mapped to DATETIME ISO.
- 2 The DEGREE option is only supported by DRDA Level 2 Application Servers.
- 3 DRDA defines the EXPLAIN option to have the value YES or NO. If the server does not support the EXPLAIN YES option, the value is mapped to EXPLAIN ALL.
Parametri dei comandi
- filename
- Specifica il nome del file di collegamento che è stato generato quando il programma applicativo è stato precompilato, oppure un file di elenco contenente i nomi di diversi file di collegamento. I file di bind hanno l'estensione
.bnd. Il nome percorso completo può essere specificato.Se viene specificato un file di elenco, il carattere @ deve essere il primo carattere del nome file di elenco. Il file di elenco può contenere diverse righe di nomi di file di collegamento. I file di collegamento elencati sulla stessa riga devono essere separati da caratteri più (+), ma un + non può comparire davanti al primo file elencato su ciascuna riga o dopo l'ultimo file di collegamento elencato. Ad esempio,
è un file di elenco che contiene i seguenti file di collegamento:/u/smith/sqllib/bnd/@all.lstmybind1.bnd+mybind.bnd2+mybind3.bnd+ mybind4.bnd+mybind5.bnd+ mybind6.bnd+ mybind7.bndQuando viene specificato solo il nome del file di collegamento senza alcun percorso, il file verrebbe ricercato per la prima volta nella directory corrente. Se il file viene trovato, verrebbe prelevato e il pacchetto verrebbe creato. Se il file non viene trovato nella directory corrente, allora il file verrebbe prelevato automaticamente dall'istanza o dal percorso di installazione.
- ACTION
- Indica se si deve aggiungere o sostituire il package.
- ADD
- Indica che il pacchetto named non esiste e che deve essere creato un nuovo pacchetto. Se il pacchetto esiste, l'esecuzione si interrompe e viene restituito un messaggio di errore diagnostico.
- REPLACE
- Indica che il pacchetto esistente deve essere sostituito da un nuovo con lo stesso nome pacchetto e creatore. Questo è il valore predefinito per l'opzione ACTION .
- RETAIN
- Indica se le autorità BIND e ESECUZIONE devono essere conservate quando viene sostituito un pacchetto. Se la proprietà del pacchetto cambia, il nuovo proprietario concede l'autorizzazione BIND e ESEGUI al proprietario del pacchetto precedente.
- NO
- Non conserva le autorizzazioni BIND e ESECUZIONE quando viene sostituito un pacchetto. Questo valore non è supportato da Db2.
- YES
- Conserva le autorizzazioni BIND e ESECUZIONE quando viene sostituito un pacchetto. Questo è il valore predefinito.
- REPLVER version-id
- Sostituisce una versione specifica di un pacchetto. L'identificativo della versione specifica quale versione del pacchetto deve essere sostituita. Se la versione specificata non esiste, viene restituito un errore. Se l'opzione REPLVER di REPLACE non è stata specificata e già esiste un package che corrisponde al nome del package, al creatore e alla versione del package di cui si sta eseguendo il bind, tale package verrà sostituito; in caso contrario, verrà aggiunto un nuovo package.
- APREUSE
- Specifica se i piani di accesso SQL statici devono essere riutilizzati. Quando questa opzione è abilitata, il compilatore di query tenterà di riutilizzare i piani di accesso per la dichiarazione in eventuali pacchetti esistenti durante il bind e durante il futuro implicito ed esplicito.
- YES
- Il compilatore di query tenterà di riutilizzare i piani di accesso per le istruzioni contenute nel pacchetto. Se c'è un pacchetto esistente, il compilatore di query tenterà di riutilizzare il piano di accesso per ogni istruzione che possa corrispondere con un comunicato nel nuovo file di collegamento. Per una dichiarazione da abbinare, il testo dell'istruzione deve essere identico e il numero di sezione per la dichiarazione nel pacchetto esistente deve corrispondere a quello che il numero di sezione sarà per la dichiarazione nel nuovo pacchetto.
- NO
- Il compilatore di query non tenterà di riutilizzare i piani di accesso per le istruzioni contenute nel pacchetto. (Questa è l'impostazione predefinita).
- BLOCKING
- Specifica il tipo di blocco di righe per i cursori. Il blocco dei dati di riga che contiene riferimenti ai tipi di dati delle colonne LOB è supportato anche in ambienti di database partizionati.
- ALL
- Per i cursori che vengono specificati con la clausola FOR READ ONLY o i cursori non specificati come PER UPDATE, si verifica il blocco.
I cursori ambigui vengono considerati di sola lettura.
- NO
- Il blocco non si verifica per alcun cursore.
Per la definizione di cursore di sola lettura e cursore ambiguo, fare riferimento a Dichiarazione DECLARE CURSOR .
I cursori ambigui sono trattati come aggiornabili.
- UNAMBIG
- Per i cursori specificati con la clausola FOR READ ONLY, si verifica il blocco.
I cursori non dichiarati con la clausola FOR READ Only o FOR UPDATE che non sono ambigui e sono di sola lettura verranno bloccati. I cursori ambigui non saranno bloccati.
I cursori ambigui sono trattati come aggiornabili.
- BUSTIMESENSITIVE
- Indica se i riferimenti alle tabelle temporali del periodo di applicazione in istruzioni SQL statiche e dinamiche sono influenzate dal valore del registro speciale CURRENT TEMPORAL BUSINESS_TIME.
- YES
- I riferimenti alle tabelle temporali del periodo di applicazione sono influenzati dal valore del registro speciale CURRENT TEMPORAL BUSINESS_TIME. Questo è il valore predefinito.
- NO
- I riferimenti alle tabelle temporali del periodo di applicazione non sono influenzati dal valore del registro speciale CURRENT TEMPORAL BUSINESS_TIME.
- CCSIDG double-ccsid
- Un numero intero che specifica l'identificatore del set di caratteri codificati (CCSID) da utilizzare per i caratteri a byte doppio nelle definizioni delle colonne di caratteri (senza una clausola CCSID specifica) nelle istruzioni SQL CREATE e ALTER TABLE. Questa opzione non è supportata dal server per Db2. Il server DRDA utilizza un valore predefinito integrato se questa opzione non è specificata.
- CCSIDM mixed-ccsid
- Un numero intero che specifica il codice identificativo del set di caratteri codificati (coded) da utilizzare per i caratteri a byte misti nelle definizioni di colonna dei caratteri (senza una specifica clausola di modifica del codice) nelle istruzioni SQL CREATE e ALTER TABLE. Questa opzione non è supportata dal server per Db2. Il server DRDA utilizza un valore predefinito integrato se questa opzione non è specificata.
- CCSIDS sbcs-ccsid
- Un numero intero che specifica l'identificatore del set di caratteri codificati (CCSID) da utilizzare per i caratteri a byte singolo nelle definizioni di colonne di caratteri (senza una clausola CCSID specifica) nelle istruzioni SQL CREATE e ALTER TABLE. Questa opzione non è supportata da Db2. Il server DRDA utilizza un valore predefinito integrato se questa opzione non è specificata.
- CHARSUB
- Designa il sottotipo di carattere predefinito che deve essere utilizzato per le definizioni di colonna nelle istruzioni SQL CREATE e ALTER TABLE. Questa opzione di precompilazione/bind non è supportata dal server per Db2.
- BIT
- Utilizzare il sottotipo di carattere FOR BIT DATA SQL in tutte le nuove colonne di caratteri per le quali non è specificato un sottotipo esplicito.
- DEFAULT
- Utilizzare il default integrato di default in tutte le nuove colonne di caratteri per le quali non è specificato un sottotipo esplicito.
- MIXED
- Utilizzare il sottotipo di carattere FOR MIXED DATA SQL in tutte le nuove colonne di caratteri per le quali non è specificato un sottotipo esplicito.
- SBCS
- Utilizzare il sottotipo di carattere FOR SBCS DATA SQL in tutte le nuove colonne di caratteri per le quali non è specificato un sottotipo esplicito.
- CLIPKG cli-packages
- Un numero intero compreso tra 3 e 30 specificando il numero di pacchetti CLI di grandi dimensioni da creare quando si legano i file di collegamento CLI contro un database.
- CNULREQD
- Questa opzione è correlata all'opzione di precompilazione LANGLEVEL . È valida solo se il file di bind viene creato da un'applicazione C o C++. Questa opzione di binding non viene supportata dal server per Db2.
- NO
- L'applicazione è stata codificata in base aLANGLEVELSAA1 opzione di precompilazione rispetto al terminatore null nelle variabili host di tipo C string.
- YES
- L'applicazione è stata codificata in base aLANGLEVEL MIA opzione di precompilazione rispetto al terminatore null nelle variabili host di tipo C string.
- COLLECTION schema-name
- Specifica un identificativo di raccolta 128 - byte per il pacchetto. Se non specificato, viene utilizzato l'identificativo di autorizzazione per l'utente che elabora il pacchetto.
- CONCURRENTACCESSRESOLUTION
- Specifica la risoluzione di accesso simultanente da utilizzare per le istruzioni contenute nel pacchetto.
- USE CURRENTLY COMMITTED
- Specifica che il gestore database può utilizzare la versione attualmente impegnata dei dati per le scansioni applicabili quando viene aggiornata o eliminata. Le righe nel progetto di inserimento possono essere ignorate. Questa clausola si applica quando il livello di isolamento in vigore è Cursor Stability o Read Stability (per Read Stability it skips incommittente inserti solo) e viene ignorato altrimenti. Le scansioni applicabili includono scansioni di sola lettura che possono far parte di un'istruzione di sola lettura nonché di una non sola lettura. Le impostazioni per le variabili di registro DB2_EVALUNCOMMITTED, DB2_SKIPDELETEDe DB2_SKIPINSERTED non si applicano alle scansioni che utilizzano il commit corrente. Tuttavia, le impostazioni per queste variabili di registro si applicano ancora alle scansioni che non utilizzano il commit corrente.
- WAIT FOR OUTCOME
- Specifica Cursore Stabilità e scansioni superiori attendono l'impegno o il rollback quando si incontrano i dati in fase di aggiornamento o di cancellazione. Le righe in fase di inserimento non vengono saltate. Le impostazioni delle variabili di registro DB2_EVALUNCOMMITTED, DB2_SKIPDELETEDe DB2_SKIPINSERTED non vengono più applicate.
- DATETIME
- Specifica il formato data e ora da utilizzare.
- DEF
- Utilizzare un formato data e ora associato al codice del territorio della banca dati.
- EUR
- Utilizzare lo standard IBM per la data e il formato dell'Europa.
- ISO
- Utilizzare il formato data e ora dell'International Standards Organization.
- JIS
- Utilizzare il formato data e ora dello Standard industriale giapponese.
- LOC
- Utilizzare il formato data e ora in formato locale associato al codice del territorio della banca dati.
- USA
- Utilizzare lo standard IBM per il formato di data e ora U.S.
- DBPROTOCOL
- Specifica quale protocollo utilizzare quando si connette ad un sito remoto che viene identificato da una istruzione di nome a tre parti. Supportato da Db2 for z/OS solo. Per un elenco di valori di opzione supportati, fare riferimento alla documentazione relativa a Db2 for z/OS.
- DEC
- Specifica la precisione massima da utilizzare nelle operazioni di aritmetica con numeri decimali. Questa opzione di precompilazione/bind non è supportata dal server per Db2. Il server DRDA utilizzerà un valore predefinito integrato se questa opzione non è specificata.
- 15
- La precisione a 15 cifre viene utilizzata in operazioni aritmetiche decimali.
- 31
- La precisione a 31 cifre viene utilizzata in operazioni aritmetiche decimali.
- DECDEL
- Designa se un periodo (.) o una virgola (,) verrà utilizzato come indicatore di punto decimale in costanti letterali a virgola mobile e virgola mobile. Questa opzione di precompilazione/bind non è supportata dal server per Db2. Il server DRDA utilizzerà un valore predefinito integrato se questa opzione non è specificata.
- COMMA
- Utilizzare una virgola (,) come indicatore di punto decimale.
- PERIOD
- Utilizzare un punto (.) come indicatore di punto decimale.
- DEGREE
- Specifica il grado di parallelismo per l'esecuzione di istruzioni SQL statiche in un sistema SMP. Questa opzione non influenza il parallelismo CREATE INDEX.
- 1
- L'esecuzione dell'istruzione non utilizzerà il parallelismo.
- degree-of-parallelism
- Specifica il grado di parallelismo con cui l'istruzione può essere eseguita, un valore compreso tra 2 e 32 767 (inclusi).
- ANY
- Specifica che l'esecuzione dell'istruzione può comportare il parallelismo utilizzando un grado determinato dal database manager.
- DYNAMICRULES
- Definisce le regole da applicare all'SQL dinamico al runtime, per l'impostazione iniziale dei valori utilizzati per l'ID autorizzazione e per la qualifica implicita dei riferimenti a oggetti non qualificati.
- RUN
- Specifica che l'ID di autorizzazione dell'utente che esegue il pacchetto deve essere utilizzato per il controllo di autorizzazione delle istruzioni SQL dinamiche. L'ID di autorizzazione verrà utilizzato anche come qualificatore del pacchetto predefinito per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche. Questo è il valore predefinito.
- BIND
- Specifica che tutte le regole che si applicano all'SQL statico per l'autorizzazione e la qualificazione devono essere utilizzate in fase di esecuzione. Ovvero l'ID di autorizzazione del proprietario del pacchetto deve essere utilizzato per il controllo dell'autorizzazione delle istruzioni SQL dinamiche e il qualificatore del pacchetto predefinito deve essere utilizzato per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche.
- DEFINERUN
- Se il pacchetto viene utilizzato all'interno di un contesto di routine, l'ID di autorizzazione della definitore di routine deve essere utilizzato per il controllo dell'autorizzazione e per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche all'interno della routine.
Se il pacchetto viene utilizzato come applicazione autonoma, le istruzioni SQL dinamiche vengono elaborate come se il pacchetto fosse associato a DYNAMICRULES RUN.
- DEFINEBIND
- Se il pacchetto viene utilizzato all'interno di un contesto di routine, l'ID di autorizzazione della definitore di routine deve essere utilizzato per il controllo dell'autorizzazione e per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche all'interno della routine.
Se il pacchetto viene utilizzato come applicazione autonoma, le istruzioni SQL dinamiche vengono elaborate come se il pacchetto fosse collegato con DYNAMICRULES BIND.
- INVOKERUN
- Se il pacchetto viene utilizzato all'interno di un contesto di routine, l'ID di autorizzazione dell'istruzione corrente in vigore quando viene richiamata la routine viene da utilizzare per il controllo di autorizzazione delle istruzioni SQL dinamiche e per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche all'interno di quella routine.
Se il pacchetto viene utilizzato come applicazione autonoma, le istruzioni SQL dinamiche vengono elaborate come se il pacchetto fosse associato a DYNAMICRULES RUN.
- INVOKEBIND
- Se il pacchetto viene utilizzato all'interno di un contesto di routine, l'ID di autorizzazione dell'istruzione corrente in vigore quando viene richiamata la routine viene da utilizzare per il controllo di autorizzazione delle istruzioni SQL dinamiche e per la qualificazione implicita di riferimenti di oggetti non qualificati all'interno di istruzioni SQL dinamiche all'interno di quella routine.
Se il pacchetto viene utilizzato come applicazione autonoma, le istruzioni SQL dinamiche vengono elaborate come se il pacchetto fosse collegato con DYNAMICRULES BIND.
Poiché le istruzioni SQL dinamiche utilizzeranno l'ID di autorizzazione del proprietario del pacchetto in un pacchetto che mostra un comportamento di collegamento, il binder del pacchetto non dovrebbe avere alcuna autorità concessa a loro che l'utente del pacchetto non debba ricevere. Allo stesso modo, quando si definisce una routine che mostra un comportamento define, al definitore della routine non dovrebbero essere concesse autorizzazioni che l'utente del pacchetto non dovrebbe ricevere poiché un'istruzione dinamica utilizzerà l'ID di autorizzazione del definitore della routine.
Le seguenti istruzioni SQL preparate dinamicamente non possono essere utilizzate all'interno di un pacchetto che non è stato collegato con DYNAMICRULES RUN: GRANT, REVOKE, ALTER, CREATE, DROP, COMMENT ON, RENAME, SET INTEGRITY e SET EVENT MONITOR STATE.
- ENCODING
- Specifica la codifica per tutte le variabili host in istruzioni statiche nel piano o nel pacchetto. Supportato da Db2 solo per OS/390® . Per un elenco di valori di opzione supportati, fare riferimento alla documentazione per Db2 per OS/390.
- EXPLAIN
- Memorizza le informazioni nelle tabelle Explain relative ai piani di accesso scelti per ogni istruzione SQL nel pacchetto.
- NO
- Le informazioni spiegate non verranno catturate.
- YES
- Le tabelle spiegate saranno popolate di informazioni sul piano di accesso prescelto a prep/bind ora per le istruzioni statiche e in fase di esecuzione per le istruzioni di binding incrementali.
Se il pacchetto deve essere utilizzato per una routine e il pacchetto contiene istruzioni di bind incrementali, allora la routine deve essere definita come MODIFIES SQL DATA. Se questo non viene fatto, le istruzioni di binding incrementali nel pacchetto causano un errore di tempo di esecuzione (SQLSTATE 42985).
- REOPT
- Le informazioni spiegate per ogni istruzione SQL di collegamento incrementale riottimizzabile vengono inserite nelle tabelle spiegate in fase di esecuzione. Inoltre, le informazioni spiegate vengono raccolte per le istruzioni SQL dinamiche reottimizzabili in fase di esecuzione, anche se il registro CURRENT SPIEGARE MODE è impostato su NO.
Se il pacchetto deve essere utilizzato per una routine, la routine deve essere definita come MODIFIES SQL DATA, altrimenti il bind incrementale e le istruzioni dinamiche nel pacchetto causeranno un errore del tempo di esecuzione (SQLSTATE 42985).
- ONLY
- L'opzione " ONLY consente di spiegare le istruzioni senza avere il privilegio di eseguirle. Le tabelle spiegate sono popolate ma non viene creato alcun pacchetto persistente. Se un package esistente con lo stesso nome e versione viene rilevato durante il processo di bind, il package esistente non viene eliminato né sostituito anche se è stato specificato ACTION REPLACE. Se si verifica un errore durante la popolazione delle tabelle spiegate, le informazioni spiegate non vengono aggiunte per l'istruzione che ha restituito l'errore e per eventuali istruzioni che lo seguono.
- ALL
- Le informazioni spiegate per ogni istruzione SQL statica idonea verranno inserite nelle tabelle Explain a prep/bind ora. Le informazioni spiegate per ogni istruzione incrementale di collegamento incrementale idoneo verranno inserite nelle tabelle spiegate in fase di esecuzione. Inoltre, le informazioni spiegate verranno raccolte per le istruzioni SQL dinamiche idonee in fase di esecuzione, anche se il registro CURRENT SPIEGARE MODE è impostato su NO.
Se il pacchetto deve essere utilizzato per una routine, la routine deve essere definita come MODIFIES SQL DATA, altrimenti il bind incrementale e le istruzioni dinamiche nel pacchetto causeranno un errore del tempo di esecuzione (SQLSTATE 42985).
- EXPLSNAP
- Memorizza le informazioni sull'istantanea Explain nelle tabelle Explain.
- NO
- Un Snapshot Snapshot non verrà catturato.
- YES
- Una Spiegazione Istantanea per ogni istruzione SQL statica idonea verrà inserita nelle tabelle Explain a prep/bind ora per le istruzioni statiche e in fase di esecuzione per le istruzioni di binding incrementali.
Se il pacchetto deve essere utilizzato per una routine e il pacchetto contiene istruzioni di bind incrementali, allora la routine deve essere definita come MODIFIES SQL DATA o le istruzioni di bind incrementali nel pacchetto causeranno un errore del tempo di esecuzione (SQLSTATE 42985).
- REOPT
- Spiegare le informazioni istantanee per ogni istruzione SQL di bind incrementale riottimizzabile viene inserita nelle tabelle spiegate in fase di esecuzione. Inoltre, le informazioni relative all'istantanea vengono raccolte per le istruzioni SQL dinamiche reottimizzabili in fase di esecuzione, anche se il registro CURRENT SPIEGARE SNAPSHOT è impostato su NO.
Se il pacchetto deve essere utilizzato per una routine, la routine deve essere definita come MODIFIES SQL DATA, altrimenti il bind incrementale e le istruzioni dinamiche nel pacchetto causeranno un errore del tempo di esecuzione (SQLSTATE 42985).
- ALL
- Una Spiegazione Istantanea per ogni istruzione SQL statica idonea verrà inserita nelle tabelle Explain a prep/bind ora. Le informazioni sulle istantanee spiegate per ogni istruzione incrementale di collegamento incrementale idoneo verranno inserite nelle tabelle Explain in fase di esecuzione. Inoltre, le informazioni relative all'istantanea verranno raccolte per le istruzioni SQL dinamiche idonee in fase di esecuzione, anche se il registro CURRENT SPIEGARE SNAPSHOT è impostato su
NO.Se il pacchetto deve essere utilizzato per una routine, allora la routine deve essere definita come MODIFIES SQL DATA, altrimenti il bind incrementale e le istruzioni dinamiche nel pacchetto causeranno un errore del tempo di esecuzione (SQLSTATE 42985).
- EXTENDEDINDICATOR
- Abilita il riconoscimento di valori variabili di indicatore estesi durante l'esecuzione del piano o del pacchetto associati.
- NO
- I valori variabili indicatori estesi non sono riconosciuti. Le variabili indicatore sono variabili indicatore normali; i valori variabili indicatori negativi implicano valori nulli e positivi o zero implicano non null. Questa è la condizione predefinita.
- YES
- Vengono riconosciuti valori variabili indicatori estesi. Utilizzando valori variabili indicatori non riconosciuti, o utilizzando gli indicatori di default o non assegnati di default in una posizione non supportata, il gestore del database Db2 genererà un messaggio di errore durante l'esecuzione dell'istruzione vincolata.
- FEDERATED
- Specifica se un'istruzione SQL statica in un pacchetto fa riferimento a un nickname o a una vista federata. Se questa opzione non viene specificata e un'istruzione SQL statica nel pacchetto fa riferimento a un nickname o a una vista federata, viene restituito un avviso e viene creato il pacchetto.
- NO
- Un nickname o una vista federata non si fa riferimento nelle istruzioni SQL statiche del pacchetto. Se si incontra un nickname o una vista federata in un'istruzione SQL statica durante la fase di preparazione o di collegamento di questo pacchetto, viene restituito un errore e il pacchetto è non creato.
- YES
- Un nickname o una vista federata possono essere indicati nelle istruzioni SQL statiche del pacchetto. Se non vengono riscontrati nickname o viste federate in istruzioni SQL statiche durante la preparazione o il collegamento del pacchetto, non vengono restituiti errori o avvertenze e viene creato il pacchetto.
- FEDERATED_ASYNCHRONY
- Specifica il numero massimo di code di tabelle asincrone (ATQ) che il server federato supporta nel piano di accesso per i programmi che utilizzano SQL incorporato.
- ANY
- L'ottimizzatore determina il numero di ATQ per il piano di accesso. L'ottimizzatore assegna un ATQ a tutti gli operatori SHIP o remoti remoti del piano. Il valore specificato per l'opzione server DB2_MAX_ASYNC_REQUESTS_PER_QUERY limita il numero di richieste asincrone.
- number_of_atqs_in_the_plan
- Il numero di ATQ nel piano. Si specifica un numero compreso nell'intervallo 0 a 32767.
- FUNCPATH
- Specifica il percorso di funzione da utilizzare nella risoluzione di tipi distinti definiti dall'utente e funzioni in SQL statico. Se questa opzione non viene specificata, il percorso di funzione predefinito è "SYSIBM", "SYSFUN", USER dove USER è il valore del registro speciale USER.
- schema-name
- Un identificativo SQL, ordinario o delimitato, che identifica uno schema che esiste al server delle applicazioni. Nessuna validazione che lo schema esista sia fatto a precompilazione o a tempo di bind. Lo stesso schema non può apparire più di una volta nel percorso di funzione. Il nome schema SYSPUBLIC non può essere specificato per il percorso funzione. Il numero di schemi che possono essere specificati è limitato dalla lunghezza del percorso di funzione risultante, che non può superare il 2048 bytes. Lo schema SYSIBM non ha bisogno di essere esplicitamente specificato; è implicitamente considerato il primo schema se non è incluso nel percorso di funzione.
- GENERIC "string"
- Supporta il bind di package con opzioni di bind supportate dal server di destinazione, ma non predefinite nel comando BIND PACKAGE o REBIND PACKAGE . Non utilizzare l'opzione di bind GENERIC per specificare le opzioni di bind predefinite nella sintassi del comando BIND o PRECOMPILE . Ad esempio, non specificare l'opzione di bind predefinito come KEEPDYNAMIC nell'opzione di bind GENERIC . La sintassi dell'opzione di bind GENERIC è la seguente:
generic "option1 value1 option2 value2 ..."Ogni opzione e valore deve essere separato da uno o più spazi vuoti. Ad esempio, è possibile utilizzare la seguente sintassi di opzione di collegamento GENERIC per legare un pacchetto con valori di opzioni OPT1, OPT2e OPT3 :generic "opt1 value1 opt2 value2 opt3 value3"La lunghezza massima della stringa è di 4096 bytes. La lunghezza massima di ogni nome di opzione nella stringa è di 255 bytes.
Il client trasmette il comando BIND al server Db2 senza alcuna convalida del client. Il server Db2 elabora il comando BIND e restituisce un messaggio appropriato.
Nella versione 10.5 Fix Pack 2 e successive, è possibile specificare l'impostazione del registro speciale di compatibilità dell'applicazione (APPLCOMPAT) con l'opzione GENERIC del comando BIND quando ci si connette ai server Db2 for z/OS Versione 11 e successive.
Per un elenco delle opzioni GENERIC supportate da server Db2 for z/OS , consultare
Specifica delle opzioni di collegamento di Db2 for z/OS dai client Db2
.Per un elenco delle opzioni GENERICHE supportate da Db2 per i server IBM i, vedere la Tabella 1 in
Come possono i client diversi sovrascrivere le opzioni del pacchetto quali sequenze di ordinamento NLSS, denominazione del sistema e formati di data/ora separati?.
- GRANT
- Nota: Se vengono specificate più opzioni tra 'GRANT, 'GRANT_GROUP, 'GRANT_USER e 'GRANT_ROLE, viene eseguita solo l'ultima opzione specificata.
- authid
- Concede i privilegi ESECUZIONE e BIND a un nome utente specificato, nome ruolo o ID gruppo. La specifica SQL GRANT e le relative regole vengono utilizzate per determinare il tipo di authid quando nessuno di USER, GROUP o ROLE viene fornito per specificare il tipo di granito su una dichiarazione GRANT. Per le regole, consultare GRANT (Role) statement.
- PUBLIC
- Concede i privilegi ESECUZIONE e BIND a pubblico.
- GRANT_GROUP group-name
- Concede i privilegi ESECUZIONE e BIND a un nome di gruppo specificato.
- GRANT_USER user-name
- Concede i privilegi EXECUTE e BIND a un nome utente specifico.
- GRANT_ROLE role-name
- Concede i privilegi ESECUZIONE e BIND a un nome di ruolo specificato.
- INSERT
- Consente un programma precompilato o legato a un server Db2 Enterprise Server Edition per richiedere che gli inserti di dati vengano tamponati per aumentare le prestazioni.
- BUF
- Specifica che gli inserti da un'applicazione devono essere tamponati.
- DEF
- Specifica che gli inserti da un'applicazione non devono essere tamponati.
- ISOLATION
- Determina quanto un programma legato a questo pacchetto possa essere isolato dall'effetto di altri programmi di esecuzione.
- CS
- Specifica Cursore Stabilità come livello di isolamento.
- NC
- Nessun Impegno. Specifica che il controllo di impegno non è da utilizzare. Questo livello di isolamento non è supportato da Db2.
- RR
- Specifica Lettura ripetibile come livello di isolamento.
- RS
- Specifica la stabilità di lettura come livello di isolamento. La stabilità di lettura garantisce che l'esecuzione delle istruzioni SQL nel pacchetto sia isolata da altri processi di applicazione per le righe lette e modificate dall'applicazione.
- UR
- Specifica l'unità di lettura non impegnativa come livello di isolamento.
- IMMEDWRITE
- Indica se le scritture immediate verranno effettuate per gli aggiornamenti effettuati alle serie di pagine dipendenti del pool di buffer o alle partizioni del database. Supportato da Db2 solo per OS/390 . Per un elenco di valori di opzione supportati, fare riferimento alla documentazione per Db2 per OS/390.
- KEEPDYNAMIC
Questo parametro specifica se le istruzioni SQL dinamiche devono essere mantenute dopo i punti di sincronizzazione.
Per un elenco di valori di opzione supportati supportati per Db2 for z/OS, consultare la documentazione Db2 for z/OS .
A partire da Db2 Versione 9.8 Fix Pack 2, è possibile modificare il valore dell'opzione di bind KEEPDYNAMIC per un package senza richiedere una nuova operazione di bind, evitando in tal modo la ricompilazione non necessaria fino a quando non si verifica la successiva operazione di bind. L'opzione di bind KEEPDYNAMIC controlla per quanto tempo il testo dell'istruzione e la sezione associati a un'istruzione preparata vengono conservati nel contesto SQL, specificando se le istruzioni SQL dinamiche vengono conservate dopo un COMMIT o un ROLLBACK.
- YES
Istruisce il contesto SQL per mantenere indefinitamente il testo dell'istruzione e la sezione associata alle istruzioni preparate. Le istruzioni SQL dinamiche vengono mantenute in tutte le transazioni. Tutti i package collegati con KEEPDYNAMIC YES per impostazione predefinita sono compatibili con il comportamento della cache di package esistente.
- No
Istruisce il contesto SQL per rimuovere il testo dell'istruzione e la sezione associata alle istruzioni preparate alla fine di ogni unità di lavoro. Le istruzioni SQL dinamiche inattive preparate in un package collegato con KEEPDYNAMIC NO vengono rimosse dal contesto SQL durante un'operazione COMMIT o ROLLBACK. Le istruzioni devono essere nuovamente preparate in una nuova transazione. Il client, il driver o l'applicazione deve preparare qualsiasi istruzione SQL dinamica vuole riutilizzare nuovamente in una nuova unità di lavoro. Se il pacchetto viene eseguito da un'applicazione remota, le versioni eseguibili delle istruzioni preparate vengono dissociate dal contesto SQL dell'applicazione al termine della transazione.
Le istruzioni SQL dinamiche attive devono essere conservate fino alla successiva operazione COMMIT o ROLLBACK dove sono inattive. Di seguito alcune situazioni in cui le istruzioni SQL dinamiche possono essere attive ai confini delle transazioni:- I cursori dichiarati utilizzando l'opzione CON HOLD sono aperti a un punto di impegno.
- Un'istruzione SQL dinamica sta eseguendo un'operazione COMMIT o ROLLBACK.
- Un'istruzione SQL dinamica richiama una procedura memorizzata o una funzione definita dall'utente che sta eseguendo l'operazione COMMIT o ROLLBACK.
- MESSAGES message-file
- Specifica la destinazione per i messaggi di stato di avvertimento, di errore e di completamento. Viene creato un file di messaggi indipendentemente della corretta esecuzione del bind. Se non viene specificato un nome per il file di messaggi, i messaggi vengono scritti nell'output standard. Se non viene specificato il percorso completo del file, viene utilizzata la directory corrente. Se viene specificato il nome di un file esistente, il contenuto del file viene sovrascritto.
- OPTHINT
- Controlla se i suggerimenti di ottimizzazione della query vengono utilizzati per SQL statico. Supportato da Db2 solo per OS/390 . Per un elenco di valori di opzione supportati, fare riferimento alla documentazione per Db2 per OS/390.
- OPTPROFILE optimization-profile-name
- Specifica il nome di un profilo di ottimizzazione esistente da utilizzare per tutte le istruzioni statiche nel pacchetto. Il valore predefinito dell'opzione è una stringa vuota. Il valore si applica anche come default per la preparazione dinamica delle istruzioni DML per le quali il registro speciale CURRENT OPTIMIZATION PROFILE è nullo. Se il nome specificato non è qualificato, si tratta di un identificativo SQL, che è implicitamente qualificato dall'opzione di bind QUALIFIER .
Il comando BIND non elabora il file di ottimizzazione, ma convalida solo che il nome è sintatticamente valido. Di conseguenza, se il profilo di ottimizzazione non esiste o non è valido, un'avvertenza SQL0437W con codice di errore 13 non si verificherà fino a quando non verrà ottimizzata un'istruzione DML utilizzando tale profilo di ottimizzazione.
- OS400NAMING
- Specifica l'opzione di denominazione da utilizzare quando si accede ai dati di Db2 per System i. Supportato da Db2 solo per System i . Per un elenco di valori di opzione supportati, fare riferimento alla documentazione per Db2 per IBM i.
- OWNER authorization-id
- Designa un identificativo di autorizzazione 128 - byte per il proprietario del pacchetto. Il proprietario deve avere i privilegi necessari per eseguire le istruzioni SQL contenute nel package. Solo un utente con autorità DBADM può specificare un identificativo di autorizzazione diverso dall'ID utente. Il valore predefinito è l'ID di autorizzazione del richiamo del processo di precompilazione/bind. SYSIBM, SYSCAT e SYSSTAT non sono valori validi per questa opzione. L' id - autorizzazione deve essere un utente. Non è possibile specificare un ruolo o un gruppo utilizzando l'opzione OWNER .
- PATH
- Specifica il percorso di funzione da utilizzare nella risoluzione di tipi distinti definiti dall'utente e funzioni in SQL statico. Se questa opzione non viene specificata, il percorso di funzione predefinito è "SYSIBM", "SYSFUN", USER dove USER è il valore del registro speciale USER.
- schema-name
- Un identificativo SQL, ordinario o delimitato, che identifica uno schema che esiste al server delle applicazioni. Nessuna validazione che lo schema esista sia fatto a precompilazione o a tempo di bind.
- QUALIFIER qualifier-name
- Fornisce un qualificatore implicito di 128 - byte per oggetti non qualificati contenuti nel pacchetto. Il valore predefinito è l'ID di autorizzazione del proprietario, indipendentemente dal fatto che OWNER sia esplicitamente specificato o meno.
- QUERYOPT optimization-level
- Indica il livello di ottimizzazione richiesto per tutte le istruzioni SQL statiche contenute nel pacchetto. Il valore predefinito è 5. L'istruzione SET CURRENT QUERY OPTIMIZATION descrive la gamma completa di livelli di ottimizzazione disponibili.
- RELEASE
- Indica se le risorse vengono rilasciate in ogni punto COMMIT o quando l'applicazione termina. Questa opzione di precompilazione DRDA/bind non è supportata da Db2. Per i server Db2 for z/OS Versione 10 o successivi, il valore predefinito è DEALLOCCA.
- COMMIT
- Liberare le risorse in ogni punto COMMIT. Utilizzato per istruzioni SQL dinamiche.
- DEALLOCATE
- Rilasciare le risorse solo quando l'applicazione termina.
- SORTSEQ
- Specifica quale tabella sequenza di ordinamento utilizzare su System i. Supportato da Db2 per IBM i solo. Per un elenco di valori di opzione supportati, fare riferimento alla documentazione per Db2 per System i.
- SQLERROR
- In caso di errore, indica se creare un package o un file di bind.
- CHECK
- Specifica che il sistema di destinazione esegue tutte le verifiche di sintassi e semantiche sulle istruzioni SQL in fase di collegamento. Un pacchetto non verrà creato come parte di questo processo. Se, durante il bind, viene rilevato un pacchetto esistente con lo stesso nome e la stessa versione, il pacchetto esistente non viene eliminato né sostituito anche se è stato specificato ACTION REPLACE .
- CONTINUE
- Crea un pacchetto, anche se gli errori si verificano quando si legano istruzioni SQL. Le istruzioni che non hanno eseguito il bind per motivi di autorizzazione o di esistenza possono essere collegate in modo incrementale al momento dell'esecuzione se viene specificato anche VALIDATE RUN . Qualsiasi tentativo di eseguirli in fase di esecuzione genera un errore (SQLCODE -525, SQLSTATE 51015).
- NOPACKAGE
- Un pacchetto o un file di collegamento non viene creato se si incontra un errore.
- REOPT
- Specifica se avere Db2 determinare un percorso di accesso in fase di esecuzione utilizzando valori per variabili host, marcatori di parametri, variabili globali e registri speciali. I valori validi sono:
- NONE
- Il percorso di accesso per una determinata istruzione SQL contenente variabili host, marcatori di parametri, variabili globali o registri speciali non sarà ottimizzato utilizzando valori reali. Vengono utilizzate le stime predefinite per queste variabili e il piano viene memorizzato e verrà utilizzato successivamente. Questo è il valore predefinito.
- ONCE
- Il percorso di accesso per una determinata istruzione SQL verrà ottimizzato utilizzando i valori reali delle variabili host, dei marcatori di parametro, delle variabili globali o dei registri speciali alla prima esecuzione della query. Questo piano viene memorizzato e utilizzato successivamente.
- ALWAYS
- Il percorso di accesso per una determinata istruzione SQL verrà sempre compilato e riottimizzato utilizzando i valori delle variabili host, dei marcatori di parametro, delle variabili globali o dei registri speciali noti ogni volta che la query viene eseguita.
- REOPT | NOREOPT VARS
- Queste opzioni sono state sostituite da REOPT ALWAYS e REOPT NONE; tuttavia, sono ancora supportate per la compatibilità precedente. Specifica se fare in modo che Db2 determini un percorso di accesso in fase di runtime utilizzando i valori per le variabili host, le variabili globali, gli indicatori di parametro e i registri speciali. Supportato solo da Db2 per OS/390 . Per un elenco dei valori di opzione supportati, fare riferimento alla documentazione per Db2 per OS/390.
- SQLWARN
- Indica se le avvertenze saranno restituite dalla compilazione delle istruzioni SQL dinamiche (tramite PREPARE o ESECUZIONE IMMEDIATA), oppure dalla elaborazione della descrizione (via PREPARE ...INTO o DESCRIVERE).
- NO
- Le avvertenze non verranno restituite dal compilatore SQL.
- YES
- Le avvertenze verranno restituite dal compilatore SQL.
- STATICREADONLY
- Determina se i cursori statici saranno trattati come READ ONLY o INSENSITIVE.
- NO
- Tutti i cursori statici assumeranno gli attributi come normalmente generati, dato il testo dell'istruzione e l'impostazione dell'opzione di precompilazione LANGLEVEL . Questo è il valore predefinito.
- YES
- Qualsiasi cursore statico che non contenga la clausola FOR UPDATE o PER READ ONLY sarà considerato READ ONLY.
- INSENSITIVE
- Qualsiasi cursore statico che non contenga la clausola FOR UPDATE sarà considerato READ ONLY e INSENSITIVE.
- STRDEL
- Designa se un apostrofo (') o virgolette doppie (") verrà utilizzato come delimitatore di stringa all'interno delle istruzioni SQL. Questa opzione di precompilazione/bind non è supportata dal server per Db2. Il server DRDA utilizzerà un valore predefinito integrato se questa opzione non è specificata.
- APOSTROPHE
- Utilizzare un apostrofo (') come delimitatore di stringa.
- QUOTE
- Utilizza virgolette doppie (") come delimitatore di stringa.
- STRING_UNITS
- Specifica le unità di stringa quando i tipi di dati carattere e grafico vengono utilizzati senza unità stringa esplicite in istruzioni SQL statiche. Il default si basa sull'impostazione dei parametri di configurazione del database string_units per il database.
- SYSTEM
- In un database Unicode l'impostazione ha il seguente effetto:
- I tipi di dati di tipo CHAR, VARCHAR e CLOB definiti senza specificare la parola chiave CODEUNITS32 saranno predefiniti per OCTETS.
- i tipi di dati GRAPHIC, VARGRAPHIC e DBCLOB definiti senza specificare la parola chiave CODEUNITS32 imposteranno il default su CODEUNITS16.
- I tipi di dati di tipo CHAR, VARCHAR e CLOB definiti senza specificare la parola chiave CODEUNITS32 saranno predefiniti per OCTETS.
- GRAPHIC, VARGRAPHIC e i tipi di dati DBCLOB hanno unità di stringa implicita di doppio byte.
- CODEUNITS32
- Questa impostazione è valida solo per un database Unicode ed ha il seguente effetto:
- I tipi di dati di tipo CHAR, VARCHAR e CLOB definiti senza specificare le parole chiave BYTE o OCTETS saranno di default su CODEUNITS32.
- i tipi di dati GRAPHIC, VARGRAPHIC e DBCLOB definiti senza specificare la parola chiave CODEUNITS16 imposteranno il default su CODEUNITS32.
- SYSTIMESENSITIVE
- Indica se i riferimenti alle tabelle temporali del periodo di sistema in istruzioni SQL statiche e dinamiche sono influenzate dal valore del registro speciale CURRENT TEMPORAL SYSTEM_TIME.
- YES
- I riferimenti alle tabelle temporali del periodo di sistema sono influenzati dal valore del registro speciale CURRENT TEMPORAL SYSTEM_TIME. Questo è il valore predefinito.
- NO
- I riferimenti alle tabelle temporali del periodo di sistema non sono influenzati dal valore del registro speciale CURRENT TEMPORAL SYSTEM_TIME.
- TEXT label
- La descrizione di un pacchetto. La lunghezza massima è 255 caratteri. Per impostazione predefinita non è specificato alcun valore. Questa opzione di precompilazione/bind non è supportata dal server per Db2.
- TRANSFORM GROUP
- Specifica il nome del gruppo di trasformazione da utilizzare da istruzioni SQL statiche per lo scambio di valori di tipo strutturato definito dall'utente con programmi host. Questo gruppo di trasformazione non viene utilizzato per istruzioni SQL dinamiche o per lo scambio di parametri e risultati con funzioni o metodi esterni.
- groupname
- Identificativo SQL fino a 18 bytes di lunghezza. Un nome di gruppo non può includere un prefisso qualificativo e non può iniziare con il prefisso SYS poiché questo è riservato all'utilizzo del database. In un'istruzione SQL statica che interagisce con le variabili host, il nome del gruppo di trasformazione da utilizzare per scambiarsi valori di tipo strutturato è il seguente:
- Il nome del gruppo nell'opzione di bind TRANSFORM GROUP , se presente
- Il nome del gruppo nell'opzione di prep TRANSFORM GROUP come specificato all'ora di precompilazione originale, se presente
- Il gruppo DB2_PROGRAM , se esiste una trasformazione per il tipo dato il cui nome di gruppo è DB2_PROGRAM
- Nessun gruppo di trasformazione viene utilizzato se nessuna delle condizioni precedentemente elencate esiste.
I seguenti errori sono possibili durante il collegamento di un'istruzione SQL statica:- SQLCODE yyyyy, SQLSTATE xxxxx: è necessaria una trasformazione, ma non è stato selezionato alcun gruppo di trasformazione statica.
- SQLCODE yyyyy, SQLSTATE xxxxx: il gruppo di trasformazione selezionato non include una trasformazione necessaria (TO SQL per le variabili di input, FROM SQL per le variabili di output) per il tipo di dati che deve essere scambiato.
- SQLCODE yyyyy, SQLSTATE xxxxx: il tipo di risultato della trasformata FROM SQL non è compatibile con il tipo di variabile di output o il tipo di parametro della trasformata TO SQL non è compatibile con il tipo di variabile di input.
- VALIDATE
- Determina quando il Database manager verifica gli errori di autorizzazione e l'oggetto non trova errori. L'ID di autorizzazione del proprietario del pacchetto è utilizzato per il controllo di validità.
- BIND
- La convalida viene eseguita alla precompilazione/bind ora. Se tutti gli oggetti non esistono, o non si tiene tutta l'autorizzazione, vengono prodotti messaggi di errore. Se viene specificato SQLERROR CONTINUE , viene prodotto un file/bind del package nonostante il messaggio di errore, ma le istruzioni in errore non sono eseguibili.
- RUN
- La convalida viene tentata al momento del bind. Se tutti gli oggetti esistono, e tutte le autorità si tengono, non viene eseguito alcun ulteriore controllo in fase di esecuzione.
Se tutti gli oggetti non esistono o se tutte le autorizzazioni non vengono conservate al momento della precompilazione/bin, vengono prodotti dei messaggi di avvertenza e il pacchetto viene collegato correttamente, indipendentemente dall'impostazione dell'opzione SQLERROR CONTINUE . Tuttavia, il controllo delle autorizzazioni e la verifica dell'esistenza per le istruzioni SQL che non hanno superato questi controlli durante il processo di precompilazione/bind possono essere rifatti in fase di esecuzione.
Esempi
db2 bind myapp.bndEventuali messaggi derivanti dal processo di collegamento vengono inviati all'output standard.
Note sull'utilizzo
Il bind di un package utilizzando l'opzione REOPT con il valore ONCE o ALWAYS specificato potrebbe modificare le prestazioni e la compilazione delle istruzioni statiche e dinamiche.
Il collegamento può essere effettuato come parte del processo di precompilazione per un file di origine del programma applicativo o come passo separato in un secondo momento. Utilizzare BIND quando il bind viene eseguito come un processo separato.
Il nome utilizzato per creare il pacchetto viene memorizzato nel file di collegamento e si basa sul nome del file di origine da cui è stato generato (i percorsi o le estensioni esistenti vengono scartati). Ad esempio, un file di origine precompilato denominato myapp.sql genera un file di bind predefinito denominato myapp.bnd e un nome pacchetto predefinito MYAPP. Tuttavia, il nome file di collegamento e il nome pacchetto possono essere sovrascritti in fase di precompilazione utilizzando le opzioni BINDFILE e PACKAGE .
Rilegare un pacchetto con un nome schema che non esiste già risultati nella creazione implicita di quello schema. Il proprietario dello schema è SYSIBM. Il privilegio CREATEIN sullo schema è concesso a pubblico.
BIND viene eseguito nell'ambito della transazione avviata. Dopo aver eseguito il bind, 'BIND emette un COMMIT o un ROLLBACK per terminare la transazione corrente e avviarne un'altra.
Il collegamento si interromma se si verifica un errore fatale o più di 100 errori. Se si verifica un errore fatale, l'utility interromma il collegamento, tenta di chiudere tutti i file e scarta il pacchetto.
- Il valore implicito o esplicito dell' BIND opzione OWNER verrà utilizzato per il controllo delle autorizzazioni delle istruzioni SQL dinamiche.
- Il valore implicito o esplicito dell' BIND opzione QUALIFIER verrà utilizzato come qualificatore implicito per la qualifica di oggetti non qualificati all'interno di istruzioni SQL dinamiche.
- Il valore del registro speciale CURRENT SCHEMA non ha alcun effetto sulla qualificazione.
Nel caso in cui si faccia riferimento a più package durante una singola connessione, tutte le istruzioni SQL dinamiche preparate da tali package mostreranno il comportamento specificato dall'opzione DYNAMICRULES per tale specifico package e l'ambiente in cui vengono utilizzate.
I parametri visualizzati inSQL0020W vengono correttamente annotati come errori e vengono ignorati come indicato dal messaggio.
Se un'istruzione SQL risulta errata e il fileBIND opzioneSQLERROR CONTINUA è stato specificato, l'istruzione viene contrassegnata come non valida. Per modificare lo stato dell'istruzione SQL, è necessario immettere un altro BIND . Implicito ed esplicito rebind non modificherà lo stato di una istruzione non valida. In un pacchetto rilegato conVALIDATE CORRERE , un'istruzione può cambiare da associazione statica a associazione incrementale o associazione incrementale a statica attraverso riassociazione implicite ed esplicite a seconda che esistano problemi di oggetto o di autorità durante la riassociazione.
I privilegi dai ruoli concessi all'identificatore di autorizzazione utilizzato per associare il pacchetto (il valore del fileOWNER bind) o PUBLIC, vengono considerati quando si associa un pacchetto. I ruoli acquisiti tramite gruppi, in cui l'identificativo di autorizzazione utilizzato per legare il pacchetto è membro, non verranno utilizzati.
Per un programma SQL incorporato, se l'opzione di collegamento non è specificata esplicitamente, le istruzioni statiche nel package vengono collegate utilizzando il parametro di configurazione federated_async . Se l'opzione di bind FEDERATED_ASYNCHRONY viene specificata esplicitamente, tale valore viene utilizzato per il bind dei package ed è anche il valore iniziale del registro speciale. In caso contrario, il valore del parametro di configurazione del database manager viene utilizzato come valore iniziale del registro speciale. L'opzione di bind FEDERATED_ASYNCHRONY influenza l'SQL dinamico solo quando è esplicitamente impostata.
Il valore dell'opzione bind FEDERATED_ASYNCHRONY viene registrato nella colonna FEDERATED_ASYNCHRONY in SYSCAT.PACKAGES . Quando l'opzione di bind non viene specificata esplicitamente, viene utilizzato il valore del parametro di configurazione federated_async e il catalogo mostra un valore -2 per la colonna FEDERATED_ASYNCHRONY .
Se l'opzione di bind FEDERATED_ASYNCHRONY non è specificata esplicitamente quando un pacchetto è collegato e se questo pacchetto è implicitamente o esplicitamente ricollegato, il pacchetto viene ricollegato utilizzando il valore corrente del parametro di configurazione federated_async .
SeNULLID i pacchetti non sono presenti o sono obsoleti o non vincolati, in esecuzioneBIND su qualsiasi altra raccolta causa un riassociazione implicita delNULLID pacchetto. Il collegamento di un pacchetto con un ID di raccolta non predefinito richiede il collegamento esplicito dei pacchetti 'NULLID.
