Oracle , il programma object-relational database management fornito dalla Oracle Corporation , consente di utilizzare 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 dinamico offre una più ampia gamma di funzionalità di una query standard. È possibile utilizzare le query dinamiche di eseguire comandi SQL in fase di esecuzione , come ad esempio quando si lavora con una tabella che non si sa il nome del fino ad allora . Istruzioni
1
aperto Oracle e fare clic sull'icona per aprire lo strumento di Laboratorio di SQL .
2
Scrivi nelle istruzioni SQL per creare oggetti e tipi di tabella . È possibile utilizzare questi come una sorta di modello per le altre tabelle del database . Il potere dietro le istruzioni SQL dinamiche è che è possibile creare la tabella ed eseguire una query in fase di esecuzione .
"CREATE t_students TIPO COME OGGETTO ( NUMERO StudentID , full_name VARCHAR2 ( 30 ) ) per
/< br >
CREATE TYPE t_studentlist AS TABLE di t_student
/"
le dichiarazioni di cui sopra , è stato creato un database denominato " t_students " che utilizzeranno " valori full_name "come StudentID " e " identificatori unici ( un modo per identificare un singolo record in un database) . Il valore " StudentID " sarà una variabile " NUMERO " , il che significa che solo i numeri salverà il campo " StudentID " . Il valore " full_name " può contenere solo un massimo di 30 caratteri alfabetici . 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 effettivi del database . La tabella prende in prestito la struttura dei tipi creati nella Fase 2 , in modo da non dover specificare nuovamente gli identificatori . Utilizzando lo stesso esempio , l' SQL per creare le tabelle sarà simile a questa :
"CREATE TABLE students_new ( NUMERO StudentID , studenti t__studentlist ) per
NESTED TABELLA studenti STORE AS student_table ; "
la tabella " students_new " si collegherà alla tabella " studenti " e " t_studentlist " utilizzando il campo " StudentID " . Ogni studente della tabella avrà un numero unico che collega le informazioni dello studente in ogni tabella . In questo modo, non dovrete dati ripetitivi nelle tabelle . Per esempio, in un database di studenti , si dispone di una tabella che contiene le informazioni di contatto studente (nome , numero di telefono e indirizzo postale ) e un'altra tabella che contiene programmazione attuale dello studente . L'unico campo che sarà la stessa in entrambe le tabelle è il campo " StudentID " che connette l'informazione . È possibile utilizzare il campo " StudentID " per scrivere una query che estrae il nome dello studente e il numero di telefono da le informazioni di contatto degli studenti e sulla pianificazione dello studente dalla tabella di pianificazione.
4
scrivere una query SQL per aggiungere informazioni alle tabelle. Dichiarare due variabili che tirerà le informazioni dalla tabella da utilizzare nella query dinamica in seguito.
"INSERT INTO students_new VALUES (
10 , Stati
t_studentlist ( < br
t_students > ( 1 , ' John Doe ') ,
t_students ( 2 , ' Jane Smith ')) ) ;
DICHIARO
NUMERO majorId ;
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 le informazioni del database di John Doe avrà un ID di " 1 ".
5
eseguire la query . Questa parte verrà aggiunto il codice SQL dinamico . Uno dei nomi delle tabelle non è noto al momento si codifica la query , ma diventerà disponibile durante il runtime. Creare un segnaposto temporaneo , invece.
"BEGIN
EXECUTE IMMEDIATE 'SELECT s.studentId , s.fullname
DA students_new s , TABLE ( s.students ) s < br >
DOVE s.studentId = 1 '
INTO majorId , sname ;
END;
/"
Nella query dinamica, è stanno prendendo informazioni dalla tabella " students_new " e di metterlo in campo " majorId " e " sname " di una tabella che non sono conosciuti in questo momento ( ( s.students ) s ) . È interrogato il database di informazioni su uno studente con ID " 1 ". Utilizzando l'esempio , John Doe è lo studente selezionato dalla tabella degli studenti e aggiunta alla tabella sconosciuto .
6
Premere il tasto " F9 " sulla tastiera per eseguire la query e testarlo.