Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
ORA-001722在Oracle SQL中插入时编号无效_Sql_Oracle - Fatal编程技术网

ORA-001722在Oracle SQL中插入时编号无效

ORA-001722在Oracle SQL中插入时编号无效,sql,oracle,Sql,Oracle,我在Oracle中有上述数据库,但当我尝试运行insert命令时,我得到一个ORA-1722错误,无效数字。用户_状态表中有一个条目,对应于插入中的1 我已经在这上面呆了好几天了。引号不是问题-只要有效,它将被隐式转换为数字 检查您的约束条件: CREATE TABLE the_user( Name VARCHAR(40) not null, Address VARCHAR(255) not null, Delivery_address VARCHAR(255), Ema

我在Oracle中有上述数据库,但当我尝试运行insert命令时,我得到一个ORA-1722错误,无效数字。用户_状态表中有一个条目,对应于插入中的1


我已经在这上面呆了好几天了。

引号不是问题-只要有效,它将被隐式转换为数字

检查您的约束条件:

CREATE TABLE the_user( Name VARCHAR(40) not null,
    Address VARCHAR(255) not null,
    Delivery_address VARCHAR(255),
    Email VARCHAR(25) not null,
    Phone INTEGER not null,
    Status INTEGER not null,
    Password VARCHAR(25) not null, 
    DOB DATE not null,
    PRIMARY KEY (Email),
    FOREIGN KEY (Status) REFERENCES User_Status (Status_Id),
    CONSTRAINT check_Password CHECK (Password > 4)
);


INSERT  INTO  the_user VALUES  (
    'Pergrin Took',
    '12 Bag end, hobbiton, The Shire, Eriador',
    'The address, Dublin',
    'ptook@lotr.com',
    '8679046',
    '001',
    'treebeard',
    TO_DATE('2013/11/04 14:11:34', 'yyyy/mm/dd hh24:mi:ss')
);
在这里,您尝试比较字符串和数字->在这个比较中,Oracle总是尝试将两者转换为数字->密码失败,您会看到一个错误

尝试使用代替密码,例如“55”,您将看到插入的行

也许你想这么做

CONSTRAINT check_Password CHECK (Password > 4)

数字不能用单引号括起来:
'8679046'
是字符串值,
8679046
是数字。而
'001'
也不是一个数字。
CONSTRAINT check_Password CHECK (length(Password) > 4)