gpt4 book ai didi

c# - 这个 SQL 需要采用什么格式才能让 Oracle 接受它?

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:37 25 4
gpt4 key购买 nike

我依次尝试了以下所有方法:

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: missing right parenthesis”

最佳答案

以下查询将在 Oracle 中运行:(sqlfiddle)

SELECT TRUNC(SYSDATE, 'DD') "VALUE" FROM DUAL

然而,要在 C# 中的常规字符串文字中写入双引号,您需要使用反斜杠将其转义:

ocmd.CommandText = "SELECT TRUNC(SYSDATE, 'DD') \"VALUE\" FROM DUAL";

如果出于某种原因你宁愿使用逐字字符串文字,那么你需要用另一个双引号转义一个双引号:

ocmd.CommandText = @"SELECT TRUNC(SYSDATE, 'DD') ""VALUE"" FROM DUAL";

注意:正如 Vash 在评论中指出的那样,VALUE 周围的双引号实际上并不是 Oracle 正确解析查询所必需的。

关于c# - 这个 SQL 需要采用什么格式才能让 Oracle 接受它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10358911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com