【问题标题】:I am writing a SP in SYBASE Databse, i am getting a error of type mismatch, I tried all the method I know, still it remains in place我正在 SYBASE 数据库中编写一个 SP,我收到类型不匹配的错误,我尝试了所有我知道的方法,但它仍然存在
【发布时间】:2020-11-22 20:05:40
【问题描述】:
INSERT INTO TBLONE (            
        broad,tt,CUR,
        STARTDATE,ENDDATE,OPERATION,
        TYPE,ENT,NAMEENT,SUB,FLAG1,FLAG2,ANALYST,STATUS,
        FILE,SUBID,COMMENTS )   
  SELECT convert(char(13),broad),
         convert(numeric(7,2),tt),
         convert(char(3),CUR),
         @CUR_DATE,
         ENDDATE,
         'first',
         convert(char(4),TYPE),
         convert(char(7),ENT),
         convert(varchar(40),NAMEENT),
         convert(char(8),SUB),
         'Y',
         'Y',
         convert(varchar(255),ANALYST),
         convert(char(5),STATUS),
         convert(numeric(7,0),FILE),
         convert(varchar(5),SBID),
         convert( varchar(255),COMMENTS)  
  from #TMP_TBLPONE where LE=convert(char(7) ,@LEE)

我匹配了所有的数据类型,但错误来了

“不允许从数据类型 'INT' 到 'CHAR' 的隐式转换。使用 CONVERT 函数运行此查询。”

请指导。

【问题讨论】:

  • 样本数据和预期结果将阐明正在发生的事情。为什么仍然需要更改类型?
  • 请在#TMP_TBLPONE表格中添加几行示例数据,以便重现该案例,并帮助您修复它。
  • 我首先为TBLONE 提取DDL,并验证列数据类型与select/projection 列表中值的数据类型匹配;特别是我想验证TBLONE.{STARTDATE,ENDDATE} 的数据类型与@CUR_DATE#TMP_TBLPONE.ENDDATE 的数据类型

标签: sql sybase


【解决方案1】:

你这里有这个:

    convert(numeric(7,0),FILE),

表中“FILE”列的数据类型是什么?

【讨论】:

  • 列名是 CFILE numeric(7,0) DEFAULT 0 not null,
  • @strike5-- 那么您在上面发布的代码是错误的,因为上面写的是FILE 而不是CFILE
【解决方案2】:

我认为你得到了 FILE 列的字符串单词。有没有试过

convert(char(255),FILE),

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 2017-07-06
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    相关资源
    最近更新 更多