SQL在运行select查询时出错
我运行了以下查询:SQL在运行select查询时出错,sql,oracle,Sql,Oracle,我运行了以下查询: Select * from users where user_id=20; 得到了这个错误: ORA-00997:非法使用长数据类型 99700000-“非法使用长数据类型” *原因: *行动: 第6行第37列出现错误 我想知道发生这种情况的原因以及对此的正确查询。您已将用户id定义为长数据类型。与C/Java/etc不同,long不是数字类型: LONG列存储的可变长度字符串最多包含2G字节-1或231-1字节LONG列具有VARCHAR2列的许多特征。您可以使用LON
Select * from users where user_id=20;
得到了这个错误:
ORA-00997:非法使用长数据类型
99700000-“非法使用长数据类型”
*原因:
*行动:
第6行第37列出现错误
我想知道发生这种情况的原因以及对此的正确查询。您已将用户id
定义为长数据类型。与C/Java/etc不同,long
不是数字类型:
LONG
列存储的可变长度字符串最多包含2G字节-1或231-1字节LONG
列具有VARCHAR2
列的许多特征。您可以使用LONG
列来存储长文本字符串
当Oracle试图将字符串值隐式转换为一个数字以与数字20进行比较时,会出现错误。虽然这适用于varchar2
列,但是long
数据类型有很多限制,甚至不应该用于长字符串,因为长字符串应该是CLOB
如果您的列包含数值,则它将被定义为number
,对于ID列,它可能被定义为number(38)
,以使其成为整数。您将用户ID
定义为长数据类型。与C/Java/etc不同,long
不是数字类型:
LONG
列存储的可变长度字符串最多包含2G字节-1或231-1字节LONG
列具有VARCHAR2
列的许多特征。您可以使用LONG
列来存储长文本字符串
当Oracle试图将字符串值隐式转换为一个数字以与数字20进行比较时,会出现错误。虽然这适用于varchar2
列,但是long
数据类型有很多限制,甚至不应该用于长字符串,因为长字符串应该是CLOB
如果列中包含数值,则将其设置为number
,对于ID列,可能设置为number(38)
,使其成为整数