Decode
không phải là lệnh SQL * PLUS, bạn không thể sử dụng nó trực tiếp trong sql * cộng với chỉ bên trong khối pl / sql hoặc một truy vấn. Vì vậy, đây là một ví dụ về cách có thể thực hiện phân nhánh có điều kiện:Chúng tôi khai báo một biến flag
sẽ điều chỉnh một trong hai tập lệnh có sẵn để chạy.
SQL> variable flag varchar2(7);
SQL> exec :flag := 'true';
PL/SQL procedure successfully completed.
SQL> column our_script new_value script noprint;
SQL> select decode(:flag, 'true',
2 'c:\sqlplus\script1.sql',
3 'c:\sqlplus\script2.sql'
4 ) our_script
5 from dual;
SQL> @&script;
SCRIPT
--------
script_1