大战熟女丰满人妻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://m.dabaquan.cn/javavideo/111.html

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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久99久久成人免费播放 | 天天碰天天摸天天操 | 久久免费视频网 | 亚洲综合日韩精品欧美综合区 | 亚洲精品一区亚洲精品 | 中文字幕高清免费不卡视频 | 国产精品久久久久不卡绿巨人 | 日韩成人免费在线视频 | 99re6这里只有精品视频 | 亚洲欧美一区二区三区麻豆 | 一级毛片免费视频日本 | 久久精品国产精品亚洲20 | 成人啪啪97丁香 | 久久久精品日本一区二区三区 | 色 综合 欧美 亚洲 国产 | 99re6在线视频免费精品 | 久久精品人人做人人爱爱 | 久章草在线 | 毛片免费永久不卡视频观看 | 亚洲视频在线免费 | 色偷偷免费视频 | 草草视频免费观看 | 四房激情| 国产精品久久做爰 | 国产福利91| 日韩av成人 | 婷婷国产天堂久久综合五月 | 天天操天天透 | 欧美日日| 91热久久免费频精品99欧美 | 狠狠色丁香婷婷综合视频 | 成人免费视频在线 | 97在线视频网站 | www黄在线观看 | 国产羞羞视频 | 亚洲国产欧美视频 | 久久精品动漫99精品动漫 | 久久精品国产精品亚洲红杏 | 99久久这里只精品麻豆 | 久久婷婷色 | 看黄a大片 免费 |