Nwlapcug.com


Come costruire una Query dinamica in Oracle

Oracle, la gestione di database relazionale ad oggetti programma fornito dalla Oracle Corporation, consente di utilizzare le istruzioni SQL per archiviare, gestire, recuperare e visualizzare i dati. Le query consentono all'utente di comunicare con il database per eseguire comandi SQL. Una query SQL dinamica offre una vasta gamma di funzionalità che una query standard. È possibile utilizzare query dinamiche per eseguire comandi SQL durante il runtime, ad esempio quando operano con una tabella che si non conosce il nome del fino ad allora.

Istruzioni

1

Aprire Oracle e fare clic sull'icona per aprire lo strumento SQL Workshop.

2

Scrivere nelle istruzioni SQL per creare oggetti e tipi di tabella. È possibile utilizzare questi come una sorta di modello per le altre tabelle nel database. Il potere dietro istruzioni SQL dinamiche è che è possibile creare la tabella e query su di esso durante il runtime.

"CREATE TYPE t_students come oggetto (studentId numero, full_name VARCHAR2(30))

/

T_studentlist CREATE TYPE AS tabella di t_student

/"

Nelle istruzioni di cui sopra, è stato creato un database denominato "t_students" che "studentId" e "full_name" valori verranno utilizzati come identificatori univoci (un modo per identificare un singolo record in un database). Il valore di "studentId" sarà una variabile "Numero", che significa che solo i numeri salverà al campo "studentId". Il valore di "full_name" può contenere fino a 30 caratteri di lettera. Infine, un tipo di tabella ("t_studentlist") è stato creato all'interno del database "t_student". Modificare questi valori per rappresentare al meglio il tipo di dati che avete nel vostro database Oracle.

3

Scrivere le istruzioni SQL per creare le tabelle effettive nel database. La tabella prende in prestito la struttura dei tipi creata nel passaggio 2, quindi non è necessario specificare gli identificatori nuovamente. Utilizzando lo stesso esempio, l'istruzione SQL per creare le tabelle sarà simile a questo:

"CREATE TABLE students_new (studentId numero, studenti t__studentlist)

NESTED TABLE students STORE AS student_table;"

La tabella "students_new" si collegherà alla tabella "studenti" e "t_studentlist" utilizzando il campo "studentId". Ogni studente nella tabella avrà un numero univoco che collega informazioni dello studente in ogni tabella. In questo modo, non avrete dati ripetitivi nelle tabelle. Per esempio, in un database di studenti, si dispone di una tabella che contiene le informazioni di contatto di studente (nome, numero di telefono e indirizzo postale) e un'altra tabella che contiene la pianificazione corrente dello studente. L'unico campo che sarà lo stesso in entrambe le tabelle è il campo di "studentId" che collega le informazioni. È possibile utilizzare il campo "studentId" scrivere una query che tira dello studente nome e numero di telefono dalle informazioni di contatto degli studenti e informazioni sulla pianificazione dello studente da tabella di computo.

4

Scrivere una query SQL per aggiungere informazioni ai vostri tavoli. Dichiarare due variabili che tireranno queste informazioni dalla tabella per essere utilizzato nella query dinamiche in seguito.

"INSERT INTO students_new valori (

10,

t_studentlist(

t_students(1, 'John Doe'),

t_students(2, 'Jane Smith')));

DICHIARARE

majorId NUMBER;

sname VARCHAR1(20);"

Due studenti sono stati aggiunti alla tabella. John Doe ha un ID studente di "1" e Jane Smith ha un ID studente di "2". Tutto attraverso il database informazioni di John Doe avrà un ID di "1".

5

Eseguire la query. Questa parte verrà aggiunto il codice SQL dinamico. Uno dei nomi dei tavoli non è noto al momento che è il codice della query, ma diventerà disponibile durante il runtime. Creare un segnaposto temporaneo invece.

"BEGIN

EXECUTE IMMEDIATE 'SELECT s.studentId, s.fullname

FROM students_new s, TABLE (s.students) s

WHERE s.studentId = 1'

INTO majorId, sname;

FINE;

/"

Nella query dinamica, si stanno prendendo informazioni dalla tabella "students_new" e metterlo in "majorId" e "sname" campi di una tabella che non sono noti in questo momento (s (s.students)). Si eseguire una query del database per informazioni su uno studente con un ID di "1". Utilizzando l'esempio, John Doe è lo studente selezionato dalla tabella degli studenti e aggiunta alla tabella sconosciuta.

6

Premere il tasto "F9" sulla tastiera per eseguire la query e testarlo.

Consigli & Avvertenze

  • Separare le istruzioni SQL su diverse linee per rendere il codice facile da leggere e fare riferimento successivamente.
  • Istruzioni SQL sono case-sensitive.