//oralce定義標量(scalar)
declare v_name varchar(20); //定義乙個varchar長度20的變數
declare v_number number(5,2); //定義乙個number長度5,精度2的變數
declare v_no number(5,2):=999.99; //定義乙個number長度5,精度2的變數,並附值999.99
declare date;//定義乙個date日期型別
declare flag boolean not null default false;//定義乙個boolean型別,不能為空,預設值是false
//oracle定義pl/sql復合型別變數(composite)
//表示定義乙個user_record_type的型別,這個型別有name和pass二個字段,
//並且型別和name和user.username一樣,pass和user.password一樣
declear
type user_record_type is record(name user.username%type,pass user.password%type);
sp_record user_record_type; //這句話的意思是定義乙個sp_record的 變數型別是user_record_type
--復合變數使用
begin
--執行部分
select username,passowrd into sp_record where usernaem='zhangsan';
--得到記錄
dbms_output.put_line('名字'||sp_record.name||' 密碼'||sp_record.pass); --得到值
end;
//oracle定義pl/sql復合型別表變數(composite)
//表示定義乙個user_table_type的型別
//並且只有乙個字段,型別和user.username一樣,索引index是整數
declear
type user_table_type is table of user.username%type,user.password%type index by binary_integer;
sp_table user_table_type; //這句話的意思是定義乙個sp_record的 變數型別是user_record_type
--復合變數使用
begin
--執行部分
select username,password into sp_table[0],sp_table[1] where id<=&id;
--得到記錄 sp_table[0的下標可以是負數,但是取值和賦值一樣,不然會報錯
dbms_output.put_line('名字'|sp_table[0]||'密碼'||sp_table[1]);
--sp_table[0]表示所有返回的name陣列
--sp_table[1]表示所有返回的password陣列
end;
//oracle使用乙個游標型別
declare
--定義乙個游標,名字是sp_user_cursor
type sp_user_cursor if ref cursor;
--定義乙個游標
sp_user sp_user_cursor;
--定義兩個變數,等迴圈用
v_username user.usernaem%type;
v_password user.password%type;
begin;
--執行部分
open sp_user for select username,password from user;
--取出資料
loop
fetch sp_user into v_username, v_password ;
--判斷sp_user是否為空,問空時就退出
exit when sp_user$notfound then
--控制台輸出
dbms_output.put_line('名字'||v_username||'密碼 '||v_password);
end loop;
--關閉游標
close sp_user;
end;
oracle 變數使用
在oracle 中,對於乙個提交的sql語句,存在兩種可選的解析過程,color red 一種叫做硬解析,一種叫做軟解析。color color red 乙個硬解析需要經解析,制定執行路徑,優化訪問計畫等許多的步驟。color 硬解析不僅僅耗費大量的cpu,更重要的是會佔據重要的門閂 latch 資...
oracle 變數使用
在oracle 中,對於乙個提交的sql語句,存在兩種可選的解析過程,color red 一種叫做硬解析,一種叫做軟解析。color color red 乙個硬解析需要經解析,制定執行路徑,優化訪問計畫等許多的步驟。color 硬解析不僅僅耗費大量的cpu,更重要的是會佔據重要的門閂 latch 資...
oracle 表型別變數的使用
oracle 表型別變數的使用 使用記錄型別變數只能儲存一行資料,這限制了select語句的返回行數,如果select語句返回多行就會錯。oracle提供了另外一種自定義型別,也就是表型別,它是對記錄型別的擴充套件,允許處理多行資料,類似於表。建立表型別的語法如下 type table name i...