--oracle內部程式語言 pl語言(過程語言)補充sql語言
分支、條件判斷、迴圈
分四塊:
1.declare做變數宣告(可選)
2.begin開始(必須有)
3.exception(catch到時執行)
4.end;(必須有)
e.g.
begin
dbms_output.put_line('helloworld!');
end;
標準命令列輸出,相當於system.out.println('***');
要set serveroutput on才能看見輸出,預設是off的
--declare宣告變數
變數名,預設以v_開頭
賦值,:=,(pascal語法)
不能使用保留字|第乙個字元必須是字母|最多包含30個字元|不能與表或列同名|一行一變數
變數型別(7種):binary_interger(用來計數而不是表示字段型別,可以提高效率,for i=0,...,還有陣列下標)
number,char,varchar2,date,long,boolean(要給初值,否則為空)
constant相當於final,常量
boolean型別無法列印
變數用來儲存某張表某個欄位的值,可以跟著這個欄位的資料型別走,用 tablexx.欄位xx%type,也可以 變數%type
--復合變數
table相當於陣列,record相當於類
table:
先用type重新定義型別,index by binary_interger下標,下標值可以取負
type
record:
type type_record_xx is record
欄位1 tablexx.欄位1%type,
欄位2 tablexx.欄位2%type
使用tablexx%rowtype做整體宣告
--plsql中select用法
plsql中使用select應當返回有且只有一條資料
select中應當有into
--plsql中delete、update、insert直接用即可,變數,需要commit
sql%rowcount,剛剛執行的sql有多少記錄被影響到
--ddl語句
加上execute immediate'create tablexx...'
單引號中間用兩個單引號代表乙個單引號
--if語句(pascal語法)
if(...)then
elseif(...)then
else
end if;
--loop語句
loop
exit when...;
end loop;
--for語句
for k in 1...10 loop
for k in reverse 1..10 loop
--dcl語句
--錯誤處理
exception
when...(如 too_many_rows no_data_found)then
when others../then
PL SQL學習筆記
from ebs pl sql儲存過程報表輸出 1.fnd file.put line fnd file.log,l err idx 從mes表獲取tool id tool.tool id 出現異常錯誤!2.fnd file.put line fnd file.output,文字輸出內容.獲取物件結...
PL SQL學習筆記
1 啟動sqlplus crtl r sqlplus 啟動sqlplus 輸入使用者名稱密碼登陸oracle 輸出hello world!ps sql set serveroutput on 這句不寫的話不會有結果輸出 sql begin 2 dbms output.put line hello w...
plsql 學習筆記1
在plsql中寫儲存過程時,需要寫 要執行的sql語句,在這個語句中變數應該這樣 變數 成為變數的值。如果變數需要加 那麼就得 變數 如果變數上加兩個 就是這樣 變數 那麼就變成 變數的名字,而不是變數的值。不是變數的量,如果需要加 那麼這樣,yyyy mm dd 一 是 關於plsql中寫在sql...