【发布时间】:2012-05-08 16:34:14
【问题描述】:
我依次尝试了以下所有方法:
1) // 就像在旧代码中一样
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
2) // 添加@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') "VALUE" FROM DUAL";
3) // 试试单引号
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') 'VALUE' FROM DUAL";
4) // 试试两个单引号,比如 DD
ocmd.CommandText = "SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
5) // 试试@
ocmd.CommandText = @"SELECT TRUNC(SYSDATE,''DD'') ''VALUE'' FROM DUAL";
1 和 2 给了我编译时错误:“;预期”(在“VALUE”上)
3、4 和 5 给了我“Message=ORA-00907:缺少右括号”
【问题讨论】:
-
好吧,我不是 Oracle 专家,但我猜: "SELECT TRUNC(SYSDATE,''DD'') ""VALUE"" FROM DUAL";根据您的错误消息。
-
@MarkByers,我已经删除了你提出的答案。但是保留的 VALUE 应该在 " 中。但我不是 100% 会在解析时失败。
-
@Vash:好的,我认为你是对的。似乎它解析正确。 sqlfiddle.com/#!4/d41d8/369
-
@MarkByers,但是应该避免关键字或使用“”传递关键字。顺便说一句,漂亮的页面(sqlfiddle.com)
-
在加倍价值引号时,我仍然得到“;预期”。
标签: c# sql winforms oracle quotes