Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql ora-01722:具有相同数据类型的无效数字_Sql_Oracle - Fatal编程技术网

Sql ora-01722:具有相同数据类型的无效数字

Sql ora-01722:具有相同数据类型的无效数字,sql,oracle,Sql,Oracle,当我试图将一个值选择到变量中,但一直得到ORA-01722无效数字时,我面临着一个令人费解的问题 令人困惑的是,源代码与变量的类型相同 select distinct bt.id into l_id from tb bt, rt rt where bt.basic_info_id=rt.basic_info_id and bt.party_number= '0000'; 可能的问题和解决办法: 您必须在PL/SQL块的decla

当我试图将一个值选择到变量中,但一直得到ORA-01722无效数字时,我面临着一个令人费解的问题

令人困惑的是,源代码与变量的类型相同

select distinct bt.id into l_id
       from tb bt,
            rt rt
      where bt.basic_info_id=rt.basic_info_id
        and bt.party_number= '0000';

可能的问题和解决办法:

  • 您必须在PL/SQL块的declare部分将
    l_id
    声明为
    tb.id%type
  • 两个表中的
    basic\u info\u id
    具有相同的数据类型。如果不是,请在查询中使用适当的方法强制转换它们。例如,如果一个是
    number
    ,另一个是
    varchar/varchar2
    ,则在
    number
    列中使用
    来指定char
  • 和重要提示,使用标准ANSI连接(
    内部连接,左侧外部连接,…


    干杯

    bt.id
    可能至少返回一个非数字字符,这些字符是
    bt.basic\u info\u id
    rt.basic\u info\u id
    bt.party\u number
    bt.id
    列的数据类型,除了要将返回值存储到的变量的值之外?能否显示l_id定义?@user7294900这些字符都是数字。数据类型都是varchar2