--聲明一個變量,并給它賦值
declare?
v_bonus number(8);
begin
select id*6 into v_bonus from A where Id=5;
DBMS_OUTPUT.PUT_LINE('獎金'||to_char(v_bonus));
end;
select * from emp
--拷貝一個字段的類型結構
declare
?v_ename emp.ename%type;
?v_sal emp.sal%type;
?c_tax_rate constant number(3,2) :=0.03;
?v_sal_tax v_sal%type;
?begin
? ? select ename,sal into v_ename,v_sal from emp where empno=&eno;
? ? v_sal_tax :=v_sal * c_tax_rate;
? ? dbms_output.put_line('雇員名稱:' || v_ename);
? ? dbms_output.put_line('工資:' || v_sal);
? ? dbms_output.put_line('所得稅' || v_sal_tax);
? ? end;
? ??
? ? select * from emp
declare
? v_emp emp%rowtype; --與emp表中的各個列相同
? begin
? ? ?select * into v_emp from emp where empno=&eno; ?--將emp表中的所有記錄賦值給 v_emp, &表示輸入一個新的值
? ? ?dbms_output.put_line('雇員名稱:'|| v_emp.ename);
? ? ?dbms_output.put_line('工資:' || v_emp.sal);
? ? ?end;
? ? ?
?-- 拷貝一條記錄中幾個字段的數據結構
declare?
? ?type emp_record_type is record(
? ? ? name emp.ename%type,salary emp.sal%type,job emp.job%type
? ?);
? ?v_emp_record emp_record_type;
? ?begin
? ? ?select ename,sal,job into v_emp_record from emp where empno=&eno;
? ? ?dbms_output.put_line('雇員名稱:' || v_emp_record.name);
? ? ?dbms_output.put_line('工資:'|| v_emp_record.salary);
? ? ?dbms_output.put_line('職位:' || v_emp_record.job);
? end;
??
? insert into emp select * from emp
??
? --拷貝整個表的表結構,逐行拷貝
??
? declare?
? ? type emp_table_type is table of emp%rowtype
? ? index by binary_integer;
? ? v_emp_table emp_table_type;
? ? begin
? ? ? ?select ename,sal into v_emp_table(1).ename,v_emp_table(1).sal from emp where empno=7369;
? ? ? ?select ename,sal into v_emp_table(2).ename,v_emp_table(2).sal from emp where empno=7370;
? ? ? ?dbms_output.put_line('雇員名稱:'||v_emp_table(1).ename || '工資:' || v_emp_table(1).sal);
? ? ? ?dbms_output.put_line('雇員名稱:' || v_emp_table(2).ename || '工資:' || v_emp_table(2).sal);
? ?end;
? ?
? ?--使用when loop 循環
? ?declare?
? ? ?v_i number:=1;
? ? ?v_s number:=0;
? ? begin
? ? ? ? loop
? ? ? ? ? exit when v_i>100;
? ? ? ? ? ?v_s:=v_s+v_i;
? ? ? ? ? ?v_i:=v_i+1;
? ? ? ? end loop;
? ? ? ? dbms_output.put_line('100之內的整數和:' || v_s);
? ? end;
? ??
? ? --使用while loop 循環;
? declare
? ? ?v_i number:=1;
? ? ?v_s number:=0;
? ? ?begin
? ? ?while v_i<=100 loop
? ? ? v_s:=v_s+v_i;
? ? ? v_i:=v_i+1;
? ? ? end loop;
? ? ? dbms_output.put_line('100以內的整數和: ?'|| v_s);
? end;
??
? --求100以內的自然數
? declare?
? ? ?v_s number:=0;
? ? ?begin
? ? ? ? for v_i in 1..100 loop
? ? ? ? ? ?v_s:=v_s+v_i;
? ? ? ? end loop;
? ? ? ? dbms_output.put_line('100以內的自然數:'|| v_s);
? ?end;
? ?
? ?--求100-110之間的素數
? ?declare
? ? ? ?v_m number:=101;
? ? ? ?v_i number;
? ? ? ?v_n number:=0;
? ?begin
? ? ? while v_m<110 loop
? ? ? ? v_i:=2;
? ? ? ? loop
? ? ? ? ? exit when v_i>v_m-1;
? ? ? ? ? if mod(v_m,v_i)=0 then
? ? ? ? ? ? v_i:=0;
? ? ? ? ? ? exit;
? ? ? ? ? ?end if;
? ? ? ? ? ?v_i:=v_i+1;
? ? ? ? ??
? ? ? ? end loop;
? ? ? ? if v_i>0 then
? ? ? ? ? v_n:=v_n+1;
? ? ? ? ? dbms_output.put_line('第'|| v_n || '個素數是' || v_m);
? ? ? ? end if;
? ? ? ? ?v_m:=v_m+2;
? ? ? end loop;
? ? end;
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
