创建Oracle表时触发ORA-04044错误,请求技术解决方案
ORA-04044错误修复:创建users_sys表失败问题
问题描述
创建users_sys表时触发ORA-04044错误,尝试调整约束位置、移除部分内容、重命名对象均无法解决。
原创建表代码
create table users_sys( userid int primary key, username varchar2(255) unique not null, email varchar2(255) unique not null, registrationdate date default getdate() not null );
错误信息
Error report -ORA-04044: procedure, function, package, or type is not allowed here04044. 00000 - "procedure, function, package, or type is not allowed here"
*Cause: A procedure, function, or package was specified in an
错误原因
getdate()是SQL Server的内置函数,Oracle数据库不支持该函数。在Oracle的列默认值定义中使用了这个非Oracle原生函数,触发了ORA-04044错误。
修复方案
将getdate()替换为Oracle的内置日期函数,常用选项有两种:
SYSDATE:返回数据库服务器的当前日期和时间CURRENT_DATE:返回当前会话时区对应的日期和时间
修复后的代码:
create table users_sys( userid int primary key, username varchar2(255) unique not null, email varchar2(255) unique not null, registrationdate date default SYSDATE not null );
内容的提问来源于stack exchange,提问作者Adrian Narine
相关产品推荐
相关产品推荐

