SQL文は、直ちに手続きの実行を保存します
execute immediate sql;
SQLPLUSでストアドプロシージャを実行します
execute 存储过程名
Oracleは、同義語、プライベート・シノニムにデフォルトを作成します
create synonym ctb for item.chinastudentbook@dblink6;
パブリック・シノニム
create public synonym ctb for ....
シノニムを削除
drop synonym ctb;
drop public synonym pb_ctb;
定数、一定のキーワードを定義します。
c_id constant number := 50;
バインド変数を使用:変数名のファッション
SQL> begin
:bd:='hello you';
end;
SQL> print bd;
定義のサブタイプ
declare
subtype sub_num is number(5,1);
v2 sub_num;
begin
null;
end;
逆逆循環をサポートしています
for counter in [reverse] 开始值..结束值 loop
end loop;
無条件終了
loop
exit
end loop;
条件付き終了
loop
exit when y > 3;
end loop;
無条件で継続します
loop
continue;
end loop;
継続条件
loop
continue when y>3;
end loop;
goto文、あなたはラベル、カスタムラベル名のタグ構文を定義する必要があります<< >>
declare
...
begin
<<hbk>>
...
if v1>20 then
goto hbk;
end if;
...
end;
プログラムは、goto文を実行すると、文は後藤後に実行されていませんが、ラベルHBKへのジャンプがHBKからのコード実行を開始します。
でPL / SQLについての異常
declare
...
begin
...
exception
when 异常1 then
对异常1进行处理;
when 异常2 then
对异常2进行处理;
...
when others then
...
end;
例外をキャッチ
when others then
dbms_output.put_line('Error code:'||SQLCODE||' '||SQLERRM);
SQLCODEおよびOracle SQLERRMは、予め定義された機能、前者戻るエラーメッセージを返し、エラーコードです。
カスタム例外、構文は次のとおりです。
「例外名」の例外
pragma exception_init(exception_name,-Oracle_error_number);
範囲-20 000 999個の数値を-20〜
トリガー3
1、例外は、Oracleによって自動的にトリガされる
raise文を使用して、2手動でトリガ
ストアドプロシージャを呼び出し、3手動でトリガRAISE_APPLICATION_ERROR
declare
myecp exception;
begin
raise myecp;
exception when myecp then
dbms_output.put_line('myecp error..');
end;
declare
myecp2 exception;
pragma exception_init(myecp2,-20009);
begin
raise_application_error(-20009,'data is out of list');
exception when myecp2 then
dbms_output.put_line('Error code:'||SQLCODE||' '||SQLERRM);
end;