Oracle, objekt- relationelle database management program leveres af Oracle Corporation, giver dig mulighed for at bruge SQL-sætninger til at gemme, administrere, hente og vise data. Forespørgsler tillader brugeren at kommunikere med databasen at udføre SQL-kommandoer . En dynamisk SQL-forespørgsel tilbyder en bredere vifte af kapaciteter end en standard forespørgsel. Du kan bruge dynamiske forespørgsler til at udføre SQL-kommandoer under runtime , såsom når opererer med en tabel , som du ikke vil kende navnet på indtil da. Instruktioner
1
Open Oracle og klik på ikonet for at åbne SQL Workshop værktøj .
2
Skriv i SQL-sætninger til at oprette objekter og bordtyper . Du kan bruge disse som en slags skabelon for andre tabeller i databasen . Den magt bag dynamiske SQL-sætninger er, at du kan skabe bordet og forespørge det under runtime .
" CREATE TYPE t_students som objekt ( studentId ANTAL , FULL_NAME VARCHAR2 (30) )
/< br >
CREATE TYPE t_studentlist AS TABEL af t_student
/"
ovenstående udsagn , du har oprettet en database med navnet" t_students " , der vil bruge " studentId "og" FULL_NAME " værdier som entydige identifikatorer ( en måde at identificere en enkelt post i en database) . Den " studentId " værdi vil være et "nummer" variabel , hvilket betyder, at kun tal vil spare til " studentId " feltet. Den " FULL_NAME " value kan kun holde op til 30 bogstavstegn . Endelig et bord type ( " t_studentlist " ) blev oprettet inde i " t_student " database. Ændre disse værdier for bedre at repræsentere den type data , du har i din Oracle database .
3
Skriv SQL-sætninger til at skabe de faktiske tabeller i databasen . Tabellen låner strukturen af de typer , du oprettede i trin 2 , så du ikke behøver at angive identifikatorer igen. Ved hjælp af samme eksempel vil SQL til at oprette tabellerne se sådan ud:
" CREATE TABLE students_new ( studentId ANTAL , studerende t__studentlist )
indlejret tabel elever STORE AS student_table ; "
" students_new " bord vil oprette forbindelse til " elever " table og " t_studentlist " ved at bruge " studentId " feltet. Hver elev i tabellen vil have et unikt nummer , der forbinder den studerendes oplysninger i hver tabel. Denne måde, vil du ikke have gentagne data i tabellerne . For eksempel, i en studerendes database du har en tabel, der holder den studerende kontaktoplysninger ( navn, telefonnummer og postadresse ) og en anden tabel, der holder den studerendes aktuelle tidsplan. Den eneste felt, der vil være den samme i begge tabeller er " studentId " felt, der forbinder informationen. Du kan bruge " studentId " feltet til at skrive en forespørgsel, der trækker den studerendes navn og telefonnummer fra den studerende kontaktoplysninger og den studerendes tidsplan oplysninger fra tidsplanen bordet.
4
Skriv en SQL forespørgsel til tilføje oplysninger til dine tabeller . Erklær to variabler, der vil trække disse oplysninger fra tabellen skal anvendes i den dynamiske forespørgslen senere.
" INSERT INTO students_new VALUES (
10 ,
t_studentlist (< br >
t_students (1, 'John Doe ' ) ,
t_students (2, ' Jane Smith ") ) ),
DECLARE
majorId NUMMER ; < br >
SNAME VARCHAR1 (20 ), "
To studerende blev føjet til tabellen. John Doe har et studiekort med " 1" og Jane Smith har en studiekort på "2". Alle gennem databasen John Doe oplysninger vil have et id på "1 ".
5
Udfør forespørgslen. Denne del vil tilføje dynamiske SQL. En af tabellerne navne ikke kendes på det tidspunkt, du kode den forespørgsel, men det vil blive tilgængelige under runtime . Opret en midlertidig pladsholder i stedet.
"BEGIN
EXECUTE INDRE ' SELECT s.studentId , s.fullname
FRA students_new s , TABEL ( s.students ) s < br >
WHERE s.studentId = 1 '
INTO majorId , SNAME ,
END ,
/"
i dynamisk forespørgsel, du tager oplysninger fra " students_new " bordet og sætte det ind i de " majorId " og " SNAME " felter i en tabel , der ikke er kendt på nuværende tidspunkt ( ( s.students ) s ) . Du forespørges database for oplysninger om en studerende med en ID på "1". Brug eksemplet , John Doe er den studerende udvalgt fra de studerendes bord og føjes til den ukendte bord.
6
Tryk på " F9 "-tasten på tastaturet for at køre forespørgslen og teste det . < br >