您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Oracle:为对象类型列指定默认值

Oracle:为对象类型列指定默认值

看起来这是不可能的。

一种解决方法是使用触发器:

CREATE OR REPLACE TRIGGER test_trigger
  BEFORE INSERT OR UPDATE
ON test_table
  FOR EACH ROW
WHEN ( new.test_attr IS NULL )
BEGIN
  :new.test_attr := NEW test_t();
END test_trigger;
/

顺便说一句,它不会完全忽略非认构造函数,而会覆盖认构造函数

CONSTRUCTOR FUNCTION test_t(in_val NUMBER)
RETURN SELF AS RESULT

尝试使用以下命令定义表时导致异常DEFAULT NEW test_t(1)

ORA-06553:PLS-307:太多的“ TEST_T”声明与该调用匹配

Oracle 2022/1/1 18:47:03 有334人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶