日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle: 使用execute immediate,當(dāng)列名需要?jiǎng)?/h1>
系統(tǒng) 2099 0

I write this post is just to make a summary of a point met this week.

寫得不好的話,請(qǐng)園子里的朋友們多提意見。

這個(gè)星期的工作遇到需要給Pakage加一個(gè)function,這個(gè) function需要?jiǎng)討B(tài)組織Sql ,

以實(shí)現(xiàn)不同的 logic.

In oracle, we know that:

EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQL package包.它解析并馬上執(zhí)行動(dòng)態(tài)的SQL語(yǔ)句或非運(yùn)行時(shí)創(chuàng)建的PL/SQL塊.動(dòng)態(tài)創(chuàng)建和執(zhí)行SQL語(yǔ)句性能超前.

使用起來也非常容易,for example:

declare
? l_dept??? pls_integer := 20;
? l_nam???? varchar2(20);
? l_loc???? varchar2(20);
?begin
? execute immediate 'select dname, loc from dept where deptno = :1'
??? into l_nam, l_loc
??? using l_dept ;
?end;

這就是一個(gè)典型的檢索并傳值的例子。

我的例子稍微有一點(diǎn)不同,the column name needed to be binded dynamically.

??????? PKG_***.GET_****(' service_credit_percent ', 1, 2, inValExtractControlId, inEndDate)

其中, service_credit_percent 就是我想動(dòng)態(tài)bind的列名,

我發(fā)現(xiàn)其它參數(shù)都可以,就是列名不能作為參數(shù)通過 bind 來傳遞。

向同事請(qǐng)教后,采取以下措施:

將列名,在拼接sql 時(shí),直接拼接進(jìn) string:

?sql_select := 'SELECT sum(' ||? v_service_credit_pct || ')'?|| ;

v_service_credit_pct ? 是 function用來接受列名的參數(shù).

其它參數(shù)則可以使用bind來傳遞。

Oracle: 使用execute immediate,當(dāng)列名需要?jiǎng)討B(tài)綁定時(shí).


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!??!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 顺昌县| 蕲春县| 华宁县| 龙州县| 呼伦贝尔市| 儋州市| 新乡县| 广德县| 南陵县| 沂源县| 瓮安县| 吉安市| 慈溪市| 宁陵县| 新绛县| 洪泽县| 宁强县| 天柱县| 临沧市| 赤水市| 北安市| 酉阳| 尚志市| 九台市| 襄樊市| 永靖县| 古丈县| 东丰县| 合肥市| 尤溪县| 成武县| 凤山市| 泾川县| 视频| 新平| 马山县| 德化县| 丘北县| 泰和县| 龙陵县| 禄劝|