skapa tabell stuinfo1
( Stud int primärnyckel, stuname varchar(10) inte null, Stusex Char(2) Check (Stusex='man' eller Stusex = 'kvinna'), Stubir-datum ); info-värdena ('001', 'Zhang San', 'male',to_date ('1999-1-1','yyyy-mm-dd')); infota i stuinfo-värden ('002', 'Reese', 'male', to_date ('1997-12-1','yyyy-mm-dd')); infota i stuinfo-värden ('003', 'Wang Wu', 'female', to_date ('1995-3-4', 'yyyy-mm-dd')); info-värden ('004', 'haha', 'man',to_date ('2000-7-5','yyyy-mm-dd')); infoga i stuinfo-värden ('005', 'haha', 'man', to_date ('1993-7-5', 'yyyy-mm-dd'));
--System fördefinierade undantag Förklara v_name stuinfo.stuname%type; Börja Välj Stuname i v_name från Stuinfo; --undantag -- när too_many_rows då -- dbms_output.put_line('Frågeresultat är redundanta, kan inte tilldelas'); slut; --användardefinierade undantag Förklara money_error undantag; money1 int := 1000; money2 int :=& överföringsbelopp; Börja Om pengar1-pengar2 < 0 så raise_application_error (-20001, 'Otillräckligt saldo'); --höj money_error; annars dbms_output.put_line('Överföring lyckad'); slut om; --undantag -- när money_error då -- dbms_output.put_line('Otillräckligt saldo'); slut;
--icke-fördefinierade undantag Förklara myerror-undantag; Pragma exception_init(Myerror,-1); Börja info-värden ('001','aa','female',to_date('1995-3-4','yyyy-mm-dd')); undantag när myerror då dbms_output.put_line('Brott mot primärnyckelns unikhetsbegränsning'); slut;
infoga i stuinfo1-värden (1,'SDF','man',''); Välj * från TB1; Drop table TB1; --dynamisk SQL Börja utför omedelbart 'skapa tabell TB1(TID, int)'; slut;
Förklara sqlString varchar2(200); tId int:=2; Börja sqlString:='infoga i tb1-värden (:1)';
kör omedelbar sqlString med tId;
slut;
Välj * från StuInfo; --Implicit markör Börja DBMS_OUTPUT. PUT_LINE('Innan insättning:'|| SQL%ROWCOUNT); Uppdatera Stuinfo set Stusex = 'man'; DBMS_OUTPUT. PUT_LINE('Efter insättning:'|| SQL%ROWCOUNT); SLUT;
|