创建数据表时出现:非法的变量名/编号

冷锋 2010-06-17 03:39:46
Create Table 员工处罚表 (员工姓名 NvarChar2(18) Null,处罚原因 NvarChar2(255) Null,处罚内容 NvarChar2(255) Null,处罚日期 Date Null,操作员 NvarChar2(18) Null,标识号 Number(11) Not Null)
...全文
126 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷锋 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 java3344520 的回复:]

SqlClient参数表达式:@ParameterName
OracleClient参数表达式::ParameterName
OleDB.Net参数表达式:?

似乎是这个引起的...
[/Quote]
兄弟你说的这个问题,我昨天解决了,我是在导入图像字段时出现这个问题,当时也是按照SQLSERVER模式在参数前加了@,出现非法变量名错误。可是我上面的创建数据表没有用到@字符,最大的可能还是字符集引起的。
iqlife 2010-06-17
  • 打赏
  • 举报
回复
SqlClient参数表达式:@ParameterName
OracleClient参数表达式::ParameterName
OleDB.Net参数表达式:?

似乎是这个引起的...
冷锋 2010-06-17
  • 打赏
  • 举报
回复
ORA-01036: 非法的变量名/编号

Create Table CustomerCustomerDemo (customerid VarChar2(5) Null,customertypeid VarChar2(10) Null)

ORA-01036: 非法的变量名/编号

Create Table CustomerDemographics (customertypeid VarChar2(10) Null,customerdesc Clob Null)

ORA-01036: 非法的变量名/编号

Create Table Customers (customerid VarChar2(5) Null,companyname VarChar2(40) Null,contactname VarChar2(30) Null,contacttitle VarChar2(30) Null,address VarChar2(60) Null,city VarChar2(15) Null,region VarChar2(15) Null,postalcode VarChar2(10) Null,country VarChar2(15) Null,phone VarChar2(24) Null,fax VarChar2(24) Null)

ORA-01036: 非法的变量名/编号

Create Table Employees (employeeid Number(11) Null,lastname VarChar2(20) Null,firstname VarChar2(10) Null,title VarChar2(30) Null,titleofcourtesy VarChar2(25) Null,birthdate Date Null,hiredate Date Null,address VarChar2(60) Null,city VarChar2(15) Null,region VarChar2(15) Null,postalcode VarChar2(10) Null,country VarChar2(15) Null,homephone VarChar2(24) Null,extension VarChar2(4) Null,photo Blob Null,notes Clob Null,reportsto Number(11) Null)

ORA-01036: 非法的变量名/编号

Create Table EmployeeTerritories (employeeid Number(11) Null,territoryid VarChar2(20) Null)

ORA-01036: 非法的变量名/编号

Create Table OrderDetails (orderid Number(11) Null,productid Number(11) Null,unitprice Real Null,quantity Number(11) Null,discount Real Null)

ORA-01036: 非法的变量名/编号

Create Table Orders (orderid Number(11) Null,customerid VarChar2(5) Null,employeeid Number(11) Null,orderdate Date Null,requireddate Date Null,shippeddate Date Null,shipvia Number(11) Null,freight Real Null,shipname VarChar2(40) Null,shipaddress VarChar2(60) Null,shipcity VarChar2(15) Null,shipregion VarChar2(15) Null,shippostalcode VarChar2(10) Null,shipcountry VarChar2(15) Null)

ORA-01036: 非法的变量名/编号

Create Table Products (productid Number(11) Null,productname VarChar2(40) Null,supplierid Number(11) Null,categoryid Number(11) Null,quantityperunit VarChar2(20) Null,unitprice Real Null,unitsinstock Number(11) Null,unitsonorder Number(11) Null,reorderlevel Number(11) Null,discontinued Number(1) Null)

ORA-01036: 非法的变量名/编号

Create Table Region (regionid Number(11) Null,regiondescription VarChar2(50) Null)

ORA-01036: 非法的变量名/编号

Create Table Shippers (shipperid Number(11) Null,companyname VarChar2(40) Null,phone VarChar2(24) Null)

ORA-01036: 非法的变量名/编号

Create Table Suppliers (supplierid Number(11) Null,companyname VarChar2(40) Null,contactname VarChar2(30) Null,contacttitle VarChar2(30) Null,address VarChar2(60) Null,city VarChar2(15) Null,region VarChar2(15) Null,postalcode VarChar2(10) Null,country VarChar2(15) Null,phone VarChar2(24) Null,fax VarChar2(24) Null,homepage Clob Null)

ORA-01036: 非法的变量名/编号

Create Table Territories (territoryid VarChar2(20) Null,territorydescription VarChar2(50) Null,regionid Number(11) Null)

ORA-01036: 非法的变量名/编号

Create Table 员工表 (编号 VarChar2(18) Null,姓名 VarChar2(18) Null,身份证号 VarChar2(18) Null,固定电话 VarChar2(15) Null,移动电话 VarChar2(15) Null,住址 VarChar2(38) Null,发行站 VarChar2(18) Null,投递段 VarChar2(18) Null)

ORA-01036: 非法的变量名/编号

Create Table 员工表001 (编号 VarChar2(18) Null,姓名 VarChar2(18) Null,性别 VarChar2(4) Null,民族 VarChar2(18) Null,出生日期 Date Null,身份证号 VarChar2(18) Null,政治面貌 VarChar2(8) Null,婚姻状况 VarChar2(8) Null,籍贯 VarChar2(28) Null,住址 VarChar2(38) Null,毕业院校 VarChar2(28) Null,文化程度 VarChar2(18) Null,所学专业 VarChar2(28) Null,英语等级 VarChar2(8) Null,部门 VarChar2(18) Null,职务 VarChar2(18) Null,职称 VarChar2(18) Null,投递段 VarChar2(18) Null,电话 VarChar2(15) Null,电子邮件 VarChar2(28) Null,备注 Clob Null,照片 VarChar2(18) Null)

ORA-01036: 非法的变量名/编号

Create Table 员工表002 (编号 VarChar2(18) Null,姓名 VarChar2(18) Null,性别 VarChar2(4) Null,民族 VarChar2(18) Null,出生日期 Date Null,身份证号 VarChar2(18) Null,政治面貌 VarChar2(8) Null,婚姻状况 VarChar2(8) Null,籍贯 VarChar2(28) Null,住址 VarChar2(38) Null,毕业院校 VarChar2(28) Null,文化程度 VarChar2(18) Null,所学专业 VarChar2(28) Null,英语等级 VarChar2(8) Null,部门 VarChar2(18) Null,职务 VarChar2(18) Null,职称 VarChar2(18) Null,投递段 VarChar2(18) Null,电话 VarChar2(15) Null,电子邮件 VarChar2(28) Null,备注 Clob Null,照片 Blob Null)

ORA-01036: 非法的变量名/编号

Create Table 征订表 (客户 VarChar2(28) Null,报刊名称 VarChar2(28) Null,起始日期 Date Null,终止日期 Date Null,期限数 Number(11) Null,期限 VarChar2(10) Null,订数 Number(11) Null,订价 Real Null,应收款 Real Null,实收款 Real Null,订单号 VarChar2(18) Null,征订日期 Date Null,征订站 VarChar2(18) Null,征订员 VarChar2(18) Null,投递站 VarChar2(18) Null,投递段 VarChar2(18) Null,电话 VarChar2(15) Null,地址 VarChar2(38) Null,操作员 VarChar2(18) Null,标识号 Number(11) Null)
冷锋 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 java3344520 的回复:]

NVCHAR2替换成VARCHAR2
看看...
[/Quote]
我换过,一样出现同样的错误。
冷锋 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java3344520 的回复:]

你的数据库版本多少的,是否支持NVCHAR2 ???
[/Quote]
支持NVARCHAR2的,因为我不创建了其它数据表,也用到了NVARCHAR2,为什么要用NVARCHAR2,是因为其它类型的数据库中有NVARCHAR,如果在ORACLE中用VARCHAR2的话会出现字段内容走出字段长度的错误。
iqlife 2010-06-17
  • 打赏
  • 举报
回复
NVCHAR2替换成VARCHAR2
看看...
冷锋 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 java3344520 的回复:]

你的数据库版本多少的,是否支持NVCHAR2 ???
[/Quote]

版本是开发人员版10g
冷锋 2010-06-17
  • 打赏
  • 举报
回复
我现在在做一个数据库迁移程序,别的ACCESS、FOXPRO、MYSQL、SQLSERVER之间迁移都没问题,可是ORACLE总是出现非法的变量/编号错误,头都大了。
下面的创建数据表是SQLSERVER的NORTHWIND数据库中的一个表,也出现同样的问题。

Create Table Customers (customerid NvarChar2(5) Null,companyname NvarChar2(40) Null,contactname NvarChar2(30) Null,contacttitle NvarChar2(30) Null,address NvarChar2(60) Null,city NvarChar2(15) Null,region NvarChar2(15) Null,postalcode NvarChar2(10) Null,country NvarChar2(15) Null,phone NvarChar2(24) Null,fax NvarChar2(24) Null)
iqlife 2010-06-17
  • 打赏
  • 举报
回复
你的数据库版本多少的,是否支持NVCHAR2 ???
冷锋 2010-06-17
  • 打赏
  • 举报
回复
感谢楼上几位兄弟,可是还是百思不得其解:
一、我的另一些表字段也是用的是中文,可创建数据表成功。
二、我下面的用英文创建数据表也一样出现:非法的变量/编号错误:
Create Table CustomerDemographics (customertypeid NvarChar2(10) Null,customerdesc Clob Null)
碧水幽幽泉 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 dbspro 的回复:]
Create Table 员工处罚表 (员工姓名 NvarChar2(18) Null,处罚原因 NvarChar2(255) Null,处罚内容 NvarChar2(255) Null,处罚日期 Date Null,操作员 NvarChar2(18) Null,标识号 Number(11) Not Null)
[/Quote]
创建语句是没问题,建议列名不要用中文!
ngx20080110 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 java3344520 的回复:]
我这没有问题,可能是数据库字符集引起的...
[/Quote]
赞一个!
我在另一个字符集是USA7ASCII的数据库中创建失败!

Create Table 员工处罚表 (
员工姓名 NvarChar2(18) Null,
处罚原因 NvarChar2(255) Null,
处罚内容 NvarChar2(255) Null,
处罚日期 Date Null,
操作员 NvarChar2(18) Null,
标识号 Number(11) Not Null)
Error at line 1
ORA-00911: invalid character
iqlife 2010-06-17
  • 打赏
  • 举报
回复
我这没有问题,可能是数据库字符集引起的...
ngx20080110 2010-06-17
  • 打赏
  • 举报
回复
我把你的语句执行了一下,没问题呀,可以成功创建表。

把报错信息贴出来吧

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧