你这条语句是在ORACLE里的?还是.NET传给ORACLE的 你主样的写法是在数据库里操作变量的写法啊 TITLE应该不是在数据库里的变量吧比如我用C#时的写法 string title string select select="SELECT COUNT(*) FROM \"新闻\" WHERE \"TITLE\" ='"+TITLE+"'" 另外你说插入语句,那怎么用的是SELECT?
楼住首先要说明你的sql是写在哪的? 如果不是数据库中,是程序中的话就该楼上的形式
to hebo2005 : 是在程序中写的, 但是不是直接用的SQL语句, 是用的 OracleCommand 带参数的形式. 所以其中的变量占位符写成了那样. to Croatia : 这个是在插入记录之前查询一下看记录是不是已经存在. :)首先谢谢各位兄弟的回答, 现在问题还没有解决, 现在情况是必须要用 OracleCommand 绑参数的形式, 不用拿SQL语句直接拼, 大家看这语法有什么不对吗?
INSERT INTO "新闻" ("LINK", "SOURCE", "UPDATETIME", "CONTENT", "TITLE") VALUES (:LINK, :SOURCE, :UPDATETIME, :CONTENT, :TITLE)这是我的插入语句, 执行时就没有问题. 为什么SELECT COUNT(*) FROM "新闻" WHERE "TITLE" = :TITLE 就会出错: 指定的转换无效。
你设置个变量 SELECT COUNT(*) into temp FROM "新闻" WHERE "TITLE" = :TITLE 试试看
to hebo2005 : 如果那样, 提示错误: ORA-00905: 缺少关键字
我发现问题了, 用SELECT COUNT(*) FROM "新闻" WHERE "TITLE" = :TITLE返回的数字竟然是:84M所以在转换成int时出错。 请问为什么会出现这个问题?
你主样的写法是在数据库里操作变量的写法啊
TITLE应该不是在数据库里的变量吧比如我用C#时的写法
string title
string select
select="SELECT COUNT(*) FROM \"新闻\" WHERE \"TITLE\" ='"+TITLE+"'" 另外你说插入语句,那怎么用的是SELECT?
如果不是数据库中,是程序中的话就该楼上的形式
是在程序中写的, 但是不是直接用的SQL语句, 是用的 OracleCommand 带参数的形式. 所以其中的变量占位符写成了那样. to Croatia :
这个是在插入记录之前查询一下看记录是不是已经存在. :)首先谢谢各位兄弟的回答, 现在问题还没有解决, 现在情况是必须要用 OracleCommand 绑参数的形式, 不用拿SQL语句直接拼, 大家看这语法有什么不对吗?
SELECT COUNT(*) into temp FROM "新闻" WHERE "TITLE" = :TITLE
试试看
如果那样, 提示错误: ORA-00905: 缺少关键字