Opret tabel stuinfo1
( stuid int primærnøgle, stuname varchar(10) ikke null, Stusex Char(2) Tjek(Stusex='mand' eller Stusex='Kvinde'), Stubir-dato ); indsæt i stuinfo-værdier ('001', 'Zhang San', 'male',to_date ('1999-1-1','yyyy-mm-dd')); indsæt i stuinfo-værdier ('002', 'Reese', 'male',to_date ('1997-12-1','yyyy-mm-dd')); indsæt i stuinfo-værdier ('003', 'Wang Wu', 'female', to_date ('1995-3-4', 'yyyy-mm-dd')); indsæt i stuinfo-værdier ('004', 'haha', 'male', to_date ('2000-7-5','yyyy-mm-dd')); indsæt i stuinfo-værdier ('005', 'haha', 'male', to_date ('1993-7-5', 'yyyy-mm-dd'));
--System foruddefinerede undtagelser Erklære v_name stuinfo.stuname%type; Begynd vælg Stuname i v_name fra Stuinfo; --undtagelse -- når too_many_rows så -- dbms_output.put_line('Forespørgselsresultater er overflødige, kan ikke tildeles'); slut; --brugerdefinerede undtagelser Erklære money_error undtagelse; money1 int := 1000; money2 int :=& overførselsbeløb; Begynd Hvis penge1-penge2 < 0, så raise_application_error (-20001, 'Utilstrækkelig saldo'); --raise money_error; ellers dbms_output.put_line('Overførsel succesfuld'); slut hvis; --undtagelse -- når money_error så -- dbms_output.put_line('Utilstrækkelig saldo'); slut;
--ikke-foruddefinerede undtagelser Erklære MyError-undtagelse; pragma exception_init(min fejl,-1); Begynd indsæt i stuinfo-værdier ('001','aa','female',to_date('1995-3-4','yyyy-mm-dd')); undtagelse da min fejl så dbms_output.put_line('Overtrædelse af primær nøgles unikke begrænsning'); slut;
indsæt i stuinfo1-værdier (1,'sdf', 'male',''); Vælg * fra TB1; Drop table TB1; --dynamisk SQL Begynd udfør øjeblikkeligt 'Opret tabel TB1(TID int)'; slut;
Erklære sqlString varchar2(200); tId int:=2; Begynd sqlString:='indsæt i tb1-værdier (:1)';
udfør instant sqlString ved hjælp af tId;
slut;
Vælg * fra StuInfo; --Implicit markør Begynd DBMS_OUTPUT. PUT_LINE('Før indsættelse:'|| SQL%ROWCOUNT); opdatering stuinfo sæt stusex = 'mand'; DBMS_OUTPUT. PUT_LINE('Efter indsættelse:'|| SQL%ROWCOUNT); SLUT;
|