2017-08-28 51 views
0

我想使用的語句是這樣的:結腸傳遞字符串甲骨文選擇

SELECT TABLENAME_SEQ.nextval FROM DUAL 

,並返回良好的值(例如7號),但是當我使用:
SELECT :something FROM DUAL,並在東西通(作爲C#中的字符串)TABLENAME_SEQ.nextval,
我得到了回報: TABLENAME_SEQ.nextval列名爲:something。

我的代碼如下所示:

string statement = "SELECT :seqName FROM DUAL"; 
OracleParameter[] parameters = new OracleParameter[] { 
new OracleParameter("seqName", seqName + ".nextval") 
}; 

那麼,如何傳遞價值?任何價值?同樣的結果,當我通過*或任何東西。

+0

請發表您的代碼。 – waka

+0

什麼是':something'?請發佈您的C#代碼。 –

+0

冒號前綴表示一個參數。字符串參數是文字,並且從不評估爲表達式或PL/SQL函數(這會違背它們的用途)。所以除了動態執行之外,你所做的努力是無法完成的。 – dlatikay

回答

0

你不能用綁定變量做,但你可以使用模板引擎的速度變換這類操作:

templateMap.put("something", "TABLENAME_SEQ.nextval"); 

模板文件:

SELECT $something FROM DUAL