靜態sql
動態sql
注意:ddl和dcl語句不能直接用在靜態sql,如果要用,可以用在動態sql。
動態sql實現方法:
方法1:
方法2:dbms_sql程式包
方法詳解:
execute immediate 語句
-- 語法
execute immediate dynamic_sql_string
[into define_variable_list]
[using bind_argument_list]
;
解釋:
dynamic_sql_string 是動態sql 語句字串
into 子句用於接受select語句選擇的記錄值
using 子句用於繫結輸入引數變數
-- 舉例
-- 方式一
set serveroutput on
;declare
v_sql varchar2(
200) :=
'drop table emp2'
;begin
execute immediate v_sql;
end;
/-- 方式二
set serveroutput on
;declare
begin
execute immediate 'drop table emp2'
;end
;/
set serveroutput on
;declare
v_sql varchar2(
200) :=
'select sal from emp where empno = :empno'
; v_sal emp.sal%
type
;--儲存查詢結果
begin
--into指定用來儲存查詢結果的變數
--using用來給繫結變數賦值
execute immediate v_sql
into v_sal
using
&工號;
dbms_output.put_line(
'查詢到的工資為:'
||v_sal)
;end
;/
注意點:在定義這個變數sql時,: 表示佔位符,後面跟自己定義的變數名,格式甚至可以是:『 :1 』 ,執行語句中into是儲存執行後的結果。
通過游標實現動態sql
-- 語法
type type_cursor is ref cursor
[return return_type]
;cursor_name type_cursor;
open cursor_name for dynamic_sql_string
[using bind_argument_list]
;
解釋:
dynamic_sql_string 是動態sql 語句字串
using 子句用於繫結輸入引數變數
-- 舉例
set serveroutput on
;declare
--定義引用游標型別
type c_emp_type is ref cursor
;--定義游標變數
c_emp c_emp_type;
--定義變數儲存查詢sql
v_sql varchar
(200);
--定義變數儲存使用者輸入的部門編號
v_deptno number(
4) :=
&部門編號;
--定義變數儲存查詢結果
v_emp emp%rowtype;
begin
--確定查詢sql
v_sql :=
'select * from emp where deptno = :deptno'
;--開啟游標
open c_emp for v_sql using v_deptno;
loop
fetch c_emp into v_emp;
exit
when c_emp%notfound;
dbms_output.put_line(
'工號:'
||v_emp.empno||
'姓名:'
||v_emp.ename||
'工資:'
||v_emp.sal||
'部門編號:'
||v_emp.deptno)
;end
loop
;--關閉游標
close c_emp;
end;
/
通過dbms_sql程式包
實現步驟:
1. 將要執行的sql 語句或乙個語句塊放到乙個字串變數中
2. 開啟游標(游標)
3. 使用dbms_sql包的parse 過程來分析該字串
4. 使用dbms_sql包的bind_variable 過程來繫結變數
5. 使用dbms_sql包的execute 函式來執行語句
6. 關閉游標(游標)
這個用的少,而且沒有上面的方法直接,所以暫不介紹。 學習Python 第十三天
二叉樹 一,名詞 根邊 樹葉 葉子 沒有兒子 兄弟 具有相同父親的節點 祖父和孫子 路徑路徑的長 深度 從根到該點 高 從該點到葉子 祖先 後裔 真祖先 真後裔 二,樹的實現 class treenode def init self,data,firstchild,nextsibling self....
Java學習第十三天
13.01 常見物件 stringbuffer類的概述 b stringbuffer和string的區別 13.02 常見物件 stringbuffer類的構造方法 b stringbuffer的方法 c 案例演示 13.03 常見物件 stringbuffer的新增功能 public string...
Linux 第十三天學習
一 服務程式apache ilnux系統的配置檔案 服務目錄 etc httpd 主配置檔案 etc httpd conf httpd.conf 資料目錄 var www html 訪問日誌 var log httpd access log 錯誤日誌 var log httpd error log ...