大战熟女丰满人妻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

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产成人a大片大片在线播放 | 久久精品日本免费线 | 91sao国产在线观看 | 日韩一区二区三区不卡视频 | 99爱视频| 欧美成人剧情中文字幕 | 偷亚洲偷国产欧美高清 | 99re这里有免费视频精品 | 国产福利第一视频 | 视频亚洲一区 | 亚洲第一视频在线播放 | 成人免费动作大片黄在线 | 亚洲视频在线观看免费视频 | 特级黄色视频毛片 | 久久福利网站 | 久国产视频| 亚洲成人免费在线观看 | 手机看片国产欧美日韩高清 | 女人隐私秘视频黄www免费 | 日韩欧美国产中文字幕 | 自拍理论片 | 免费人成黄页网站在线观看 | 国产精品欧美韩国日本久久 | 国产三级做爰高清视频a | 操操免费视频 | 欧美精品一区二区在线观看 | 欧美精彩狠狠色丁香婷婷 | 婷婷毛片 | 亚洲色视频 | 欧美亚洲图片 | 精品国产调教最大网站女王 | 看真人一级毛多毛片 | 网曝门精品国产事件在线观看 | 亚洲第五色综合网 | 91福利在线免费观看 | 色噜噜狠狠色综合久 | 青青操夜夜操 | 爱爱夜夜爽成人夜夜爽 | 国产成人a在一区线观看高清 | 在线日本中文字幕 | 国产码欧美日韩高清综合一区 |