大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java數據庫編程視頻,Oracle動態執行SQL語句

Java數據庫編程視頻,Oracle動態執行SQL語句

更新時間:2020-05-14 14:26:23 來源:動力節點 瀏覽2367次

PL/SQL動態執行DDL語句

PL/SQL程序中可以執行DML語句和事物控制等語句,如經常用到selectinto進行但賦值語句,但是直接執行DDL語句(createtable等操作)是不可以的,但是可以通過動態SQL語句執行,間接到達執行DDL操作的目的。

PL/SQL程序是通過PL/SQL執行時,把SQL語句當做字符串的形式傳給動態SQL執行語句執行。動態SQL語句的寫法如下:

EXECUTEIMMEDIATE動態SQL語句

[into變量列表]

[using參數列表]

語法解析:

如果動態SQL語句是SELECT語句,可以把查詢的結果保存到INTO后面的變量中。如果動態語句中存在參數,USING為SQL語句中的參數傳值。動態SQL中的參數格式是:[:參數名],參數在運行時需要使用USING傳值。下面我們通過案例代碼分析動態SQL語句的寫法。

案例1、利用動態語句創建學生信息表的備份表(stuinfo_201812):

declare
sql_yjvarchar(500);--動態SQL執行的語句
begin
sql_yj:='createtableSTUINFO_201812
(
stuidVARCHAR2(11),
stunameVARCHAR2(50),
sexCHAR(1),
ageNUMBER(2),
classnoVARCHAR2(7),
stuaddressVARCHAR2(100),
gradeCHAR(4),
enroldateDATE,
idnumberVARCHAR2(18)
)';

 --利用動態語句創建學生備份表(stuinfo_201812)

executeimmediatesql_yj;

end;

結果如下:

    Java數據庫編程視頻,Oracle動態執行SQL語句

案例2、給備份表插入一個學生信息,代碼如下:

declare
sql_yjvarchar(500);--動態SQL執行的語句
ls_stuidVARCHAR2(11);
ls_stunameVARCHAR2(50);
ls_sexCHAR(1);
ls_ageNUMBER(2);
begin

--查詢出學生信息表中學生"張三豐"的基本信息

selectt.stuid,t.stuname,t.sex,t.age
intols_stuid,ls_stuname,ls_sex,ls_age
fromstuinfotwheret.stuid='SC201801006';

--利用動態語句執行插入操作,插入“張三豐”的信息

sql_yj:='insertintostuinfo_201812values(:1,:2,:3,:4,null,null,null,null,null)';
executeimmediatesql_yjusingls_stuid,ls_stuname,ls_sex,ls_age;

end;

結果如下:

Java數據庫編程視頻,Oracle動態執行SQL語句

案例3、利用動態SQL語句查詢出剛剛插入的學生信息:

declare

sql_yjvarchar(500);--動態SQL執行的語句

ls_stuinfostuinfo%rowtype;

ls_stuidVARCHAR2(11);

ls_stunameVARCHAR2(50);

ls_sexCHAR(1);

ls_ageNUMBER(2);

begin

--查詢出學生信息表中學生"張三豐"的基本信息

selectt.stuid,t.stuname,t.sex,t.age

intols_stuid,ls_stuname,ls_sex,ls_age

fromstuinfot

wheret.stuid='SC201801006';

--利用動態語句查詢獲取"張三豐"的信息

sql_yj:='select*fromstuinfo_201812wherestuid=:1';

executeimmediatesql_yjintols_stuinfousingls_stuid;

dbms_output.put_line('學號:'||ls_stuinfo.stuid||'姓名:'

||ls_stuinfo.stuname||'性別:'||ls_stuinfo.sex||'年齡:'||ls_stuinfo.age);

end;

結果如下:

Java數據庫編程視頻,Oracle動態執行SQL語句

總結:PL/SQL動態執行SQL語句,是先進行解析編譯后,執行后再傳入參數進行執行,因此,動態SQL有一個優勢就是綁定變量,只需一次解析,假如是一個SQL操作where條件后的值經常變換,而且經常用到,可以考慮使用Oracle動態執行SQL。因為,Oracle中SQL語句是通過SGA共享池進行緩存的,下次再次執行該SQL語句,直接從緩存當中取出,提高執行效率,減少Oracle數據庫負擔,不然,隨著每次變量值的不同,Oracle把他當作不同的SQL語句,進行再次預解析,會大大加大數據庫負擔。

Java數據庫編程視頻,Oracle動態執行SQL語句

以上就是動力節點java培訓機構的小編針對“Java數據庫編程視頻,Oracle動態執行SQL語句”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

Java數據庫免費視頻教程

老杜最新MySQL教程:http://www.dabaquan.cn/javavideo/111.html

老杜最新JDBC教程:http://www.dabaquan.cn/javavideo/112.html

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 四虎国产精品永久在线播放 | 国产乱码精品一区二区 | 高清欧美一区二区三区 | 久久精品国产精品青草图片 | 婷婷在线网站 | 一级毛片在线视频 | 天天综合天天看夜夜添狠狠玩 | 91在线视频免费 | 天天艹日日干 | 2019年国产不卡在线刷新 | 午夜宅男免费完整在线观看 | 日本爱爱视频网站 | 欧美老司机 | 五月天婷亚洲天综合网精品偷 | 干亚洲美女 | 亚洲精品久久久久久久久久ty | 日韩中文视频 | 久草视频官网 | 青青久草在线视频 | 日本在线毛片视频免费看 | 嫩模在线 | 中文字幕一区久久久久 | 亚洲男人天堂视频 | 6一10周岁毛片在线 717影院理论午夜伦八戒 | 国产成人精品日本 | 日本亚洲欧洲高清有码在线播放 | 国产成人拍精品视频网 | 天天色天天草 | 精品玖玖 | 97最新| 久久综合久久美利坚合众国 | 日本精品在线 | 欧美整片在线 | 色天使色婷婷丁香久久综合 | 大学生一级毛片免费看真人 | 国产香蕉98碰碰久久人人 | 国产日韩欧美精品一区 | 最新地址四虎www4hutv | 九九视频免费观看 | 欧美国产日韩在线观看 | 九九九网站 |