Oracle , gjør at objekt- relasjonsdatabase management program levert av Oracle Corporation , du kan bruke SQL-setninger til å lagre , håndtere , hente og vise data . Spørsmål tillate brukeren å kommunisere med databasen å kjøre SQL- kommandoer. En dynamisk SQL-spørringen tilbyr et bredere spekter av evner enn en standard spørring . Du kan bruke dynamiske spørringer kjøre SQL -kommandoer under kjøring , for eksempel når de opererer med en tabell som du ikke vil vite navnet på inntil da . Instruksjoner
en
Åpen Oracle og klikk på ikonet for å åpne SQL Workshop verktøyet .
2
Skriv i SQL-setninger for å opprette objekter og typer bord . Du kan bruke disse som en slags mal for andre tabeller i databasen . Kraften bak dynamiske SQL-setninger er at du kan lage bordet og spørre på den under kjøring .
"CREATE TYPE t_students AS OBJEKT ( studentId NUMMER , FULL_NAME VARCHAR2 ( 30 ) )
/
CREATE TYPE t_studentlist AS TABLE av t_student
/"
utsagnene ovenfor , du opprettet en database som heter " t_students " som vil bruke " studentId "og" FULL_NAME "verdier som unike identifikatorer ( en måte å identifisere en enkelt post i en database) . Den " studentId " verdien vil være en " NUMBER " variable , noe som betyr at bare tall vil spare til " studentId "-feltet . Den " FULL_NAME " verdien kan bare holde opp til 30 brev tegn. Til slutt , et bord type ( " t_studentlist ") ble opprettet innsiden av " t_student " database . Endre disse verdiene for å bedre representere den type data du har i Oracle database.
3
Skriv SQL-setninger for å lage selve tabellene i databasen. Tabellen låner strukturen av de typene du opprettet i trinn 2, slik at du ikke trenger å angi identifikatorer igjen . Bruke samme eksempel vil SQL for å opprette tabellene ser slik ut : en
"CREATE TABLE students_new ( studentId NUMMER , studenter t__studentlist )
nestet tabell studenter STORE AS student_table ; "
" students_new " tabellen vil koble til " elevene " tabellen og " t_studentlist " ved hjelp av " studentId "-feltet . Hver student i tabellen vil ha et unikt nummer som knytter studentens informasjon i hver tabell . På denne måten vil du ikke ha repeterende data i tabellene . For eksempel, i en student -database , har du en tabell som holder student kontaktinformasjon ( navn, telefonnummer og postadresse ) og en annen tabell som inneholder studentens gjeldende plan . Det eneste feltet som vil være den samme i begge tabellene er " studentId "-feltet som kobler informasjon. Du kan bruke " studentId "-feltet for å skrive en spørring som henter studentens navn og telefonnummer fra student kontaktinformasjon og studentens timeplan informasjon fra planen tabellen .
4
Skriv en SQL-spørring til legge til informasjon i tabellene . Erklærer to variabler som vil trekke denne informasjonen fra tabellen som skal brukes i den dynamiske søket senere.
" INSERT INTO students_new VALUES (
10 , etter
t_studentlist (
t_students ( 1 , ' John Doe ' ) , etter
t_students ( 2 , 'Jane Smith ' ) ) ) ;
DECLARE
majorId NUMMER ;
SNAME VARCHAR1 ( 20 ), "
To studenter ble lagt til i tabellen . John Doe har en student ID "1" og Jane Smith har en student ID " 2". All gjennom databasen John Doe informasjonen vil ha en ID på "1".
5
utføre søket . Denne delen vil legge den dynamiske SQL. En av tabeller navn er ikke kjent på det tidspunktet du koden spørringen , men det vil bli tilgjengelig i løpet av runtime . Opprett en midlertidig plassholder i stedet.
" BEGIN
EXECUTE UMIDDELBAR 'SELECT s.studentId , s.fullname
FRA students_new s , TABLE ( s.students ) s
HVOR s.studentId = 1 '
INTO majorId , SNAME ;
END ;
/"
i den dynamiske spørring, du tar informasjon fra " students_new " bordet og sette den inn i " majorId " og " SNAME " felt i en tabell som ikke er kjent på dette tidspunkt ( ( s.students ) s ) . Du spurte database for informasjon om en student med en ID på "1". Bruke eksempel er John Doe studenten valgt fra studentenes bordet og lagt til det ukjente tabellen .
6
Trykk " F9 "-tasten på tastaturet for å kjøre spørringen og teste den.