Dav*_*vid 6 sql oracle ora-12899
我创建了下表
CREATE TABLE Customers(
CustomerID varchar2(9) PRIMARY KEY,
Customer_Contact varchar2(40) NOT NULL,
Address varchar2(20) NOT NULL,
Post_Code varchar2(7) NOT NULL,
Telephone_Number varchar2(11) NOT NULL)
Run Code Online (Sandbox Code Playgroud)
我目前正在尝试使用INSERT VALUES语句.我写了以下声明
INSERT INTO Customers VALUES(
501623129,
'John Petterson',
'-- Singleton Close London',
'--- ---', 02082860222)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该语句时,它给出了以下错误消息.
在命令的第4行开始出错:INSERT INTO Customers VALUES(501623129,'David Patterson','30 Singleton Close London','SW17 9JY',02082860642)错误报告:SQL错误:ORA-12899:值太大而不适合列" DJ"."CUSTOMERS"."ADDRESS"(实际:25,最大值:20)12899.00000 - "列%s的值太大(实际:%s,最大值:%s)"
Sat*_*hat 19
ORA-12899: value too large for column "DJ"."CUSTOMERS"."ADDRESS" (actual: 25, maximum: 2
Run Code Online (Sandbox Code Playgroud)
告诉你错误是什么.地址最多可以包含20个字符,您传递的是25个字符.
如上所述,错误消息显示确切的问题:您将25个字符传递到设置为20的字段中.您可能还需要考虑更精确地定义列.您可以定义VARCHAR2列是否存储一定数量的字节或字符.在将来尝试在字段中插入多字节字符时可能会遇到问题,例如,这个字符长度为5个字符,但不适合5个字节:'ÀÈÌÕÛ'
这是一个例子:
CREATE TABLE Customers(CustomerID VARCHAR2(9 BYTE), ...
Run Code Online (Sandbox Code Playgroud)
要么
CREATE TABLE Customers(CustomerID VARCHAR2(9 CHAR), ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126992 次 |
| 最近记录: |