B. *_*non 1 c# sql oracle quotes winforms
我依次尝试了以下所有方法:
1)//就像在遗留代码中一样
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
2)//添加@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
3)//尝试单引号
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') 'VALUE' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
4)//尝试两个单引号,如DD
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
5)//试试@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
1和2给了我编译时错误:"; expected"(在"VALUE"上)
3,4和5给了我,"消息= ORA-00907:缺少右括号"
以下查询将在Oracle中有效:(sqlfiddle)
SELECT TRUNC(SYSDATE, 'DD') "VALUE" FROM DUAL
Run Code Online (Sandbox Code Playgroud)
但是要在C#中的常规字符串文字中写一个双引号,你需要用反斜杠转义它:
ocmd.CommandText = "SELECT TRUNC(SYSDATE, 'DD') \"VALUE\" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
如果您因任何原因而宁愿使用逐字字符串文字,那么您需要使用另一个双引号来转义双引号:
ocmd.CommandText = @"SELECT TRUNC(SYSDATE, 'DD') ""VALUE"" FROM DUAL";
Run Code Online (Sandbox Code Playgroud)
注意:正如Vash在注释中指出的那样,VALUEOracle实际上并不需要使用双引号来正确解析查询.
| 归档时间: |
|
| 查看次数: |
682 次 |
| 最近记录: |