我在.NET中向ORACLE数据库插入一条新闻, 为什么出错: 指定的转换无效。插入的SQL语句为:SELECT COUNT(*) FROM "新闻" WHERE "TITLE" = :TITLETITLE字段是字符型的, 不存在类型转换问题啊, 怎么会出错呢?

解决方案 »

  1.   

    你这条语句是在ORACLE里的?还是.NET传给ORACLE的
    你主样的写法是在数据库里操作变量的写法啊
    TITLE应该不是在数据库里的变量吧比如我用C#时的写法
    string title
    string select
    select="SELECT   COUNT(*)   FROM   \"新闻\"   WHERE   \"TITLE\"   ='"+TITLE+"'" 另外你说插入语句,那怎么用的是SELECT?
      

  2.   

    楼住首先要说明你的sql是写在哪的?
    如果不是数据库中,是程序中的话就该楼上的形式
      

  3.   

    to hebo2005 :
    是在程序中写的, 但是不是直接用的SQL语句, 是用的 OracleCommand 带参数的形式. 所以其中的变量占位符写成了那样. to Croatia :
    这个是在插入记录之前查询一下看记录是不是已经存在. :)首先谢谢各位兄弟的回答, 现在问题还没有解决, 现在情况是必须要用 OracleCommand 绑参数的形式, 不用拿SQL语句直接拼, 大家看这语法有什么不对吗?
      

  4.   

    INSERT INTO "新闻" ("LINK", "SOURCE", "UPDATETIME", "CONTENT", "TITLE") VALUES (:LINK, :SOURCE, :UPDATETIME, :CONTENT, :TITLE)这是我的插入语句, 执行时就没有问题. 为什么SELECT   COUNT(*)   FROM   "新闻"   WHERE   "TITLE"   =   :TITLE 就会出错: 指定的转换无效。
      

  5.   

    你设置个变量
    SELECT       COUNT(*) into temp      FROM       "新闻"       WHERE       "TITLE"       =       :TITLE   
    试试看
      

  6.   

    to hebo2005 :
    如果那样, 提示错误: ORA-00905: 缺少关键字
      

  7.   

    我发现问题了, 用SELECT COUNT(*) FROM "新闻" WHERE "TITLE" = :TITLE返回的数字竟然是:84M所以在转换成int时出错。 请问为什么会出现这个问题?