Oracle不接受VARCHAR/VARCHAR2,创建Customer表失败求解决方案
解决Oracle创建Customer表失败的问题
你的SQL语句存在两个关键问题,修正后即可成功创建表:
字段名中的
&符号触发Oracle变量替换机制
Oracle默认将&识别为变量替换标记,会尝试解析&Address为未定义的绑定变量,这是创建失败的核心原因。解决方式有两种:- 方法一:修改字段名,移除
&符号,例如改为CustomerNameAddress或Customer_Name_Address - 方法二:临时关闭变量替换功能,执行建表语句前先运行:
之后再执行替换SET DEFINE OFF;VARCHAR为VARCHAR2后的建表语句
- 方法一:修改字段名,移除
Oracle仅支持
VARCHAR2而非VARCHAR类型
Oracle没有VARCHAR类型,必须使用VARCHAR2定义可变长度字符串,这一步你已经完成,但需配合解决&符号的问题才能生效。
修正后的SQL示例(修改字段名版本)
CREATE TABLE Customer ( CustomerMobileNumber CHAR(10), CustomerNameAddress VARCHAR2(255) );
关闭变量替换的执行示例
SET DEFINE OFF; CREATE TABLE Customer ( CustomerMobileNumber CHAR(10), CustomerName&Address VARCHAR2(255) );
更推荐修改字段名的方案,避免后续操作因特殊字符引发其他异常。
内容的提问来源于stack exchange,提问作者Peter Cooling
相关产品推荐
相关产品推荐

