第四章 sql 動態查詢

2021-08-21 20:56:15 字數 1952 閱讀 2011

declare

va number(10);

vb number(5);

begin

execute immediate 『create table temp1(

a number(10),

b number(5)

)』;

execute immediate

『select a ,b from temp1』 into va,vb;

end;

drop table temp1;

select * from temp1;

—-using子句的execute immediate

declare

sql_stmt varchar2(200); –動態sql語句

dept_id number(2) := 90;

dept_name varchar2(14) := 『personnel』;

location varchar2(13) := 『dallas』;

begin

sql_stmt :=

『insert into dept values (:1, :2, :3)』;

execute immediate sql_stmt

using dept_id,dept_name,location;

end;

select * from dept;

—-into子句的execute immediate

declare

sql_stmt varchar2(200); –動態sql語句

emp_id number(4) := 7566;

emp_rec emp%rowtype;

ename1 emp.ename%type;

deptno1 emp.deptno%type;

begin

sql_stmt :=

『select * from emp where empno = :id』;

execute immediate sql_stmt into emp_rec

using emp_id;

execute immediate

『select ename,deptno

from emp where empno = :id』

into ename1, deptno1 using emp_id;

end;

—-returning into子句的execute immediate

declare

sql_stmt varchar2(200); –動態sql語句

emp_id number(4) := 7566;

salary number(7,2);

v_ename varchar2(20);

begin

sql_stmt :=

『update emp set sal = 2000 where empno = :1

returning sal,ename into :2,:3』;

execute immediate sql_stmt

using emp_id returning into salary,v_ename;

dbms_output.put_line(salary||v_ename);

end;

into –要求動態sql必須是select

using –sql語句用引數代替變數

–把變數的值傳給引數

returning into–將dml操作以後的值進行返回

–在sql語句中格式為

–單獨的dml之後 returning 列名1[…[into :引數1[…]

–在動態執行時在整個語句

–之後用returning into 變數1[…]接引數的值

第四章高階查詢

案例1 檢查 oop 課程最近一次考試。如果有80分以上的成績,則每人提2分 否則,每人提5分。最終的成績不得大於100分 if exists select studentresult from result where subjectid select subjectid from subject...

第四章 多表查詢

例如 按照department id查詢employee 員工表 和department 部門表 的資訊。方法一 通用型 select from where select e.last name,e.department id,d.department name from employee e,de...

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...