更改表 - 添加COLUMN类型BLOB的默认值

时间:2011-07-14 03:39:41

标签: sql oracle10g blob alter

执行以下SQL会出现此错误。

alter table TABLE_NAME ADD FILE_DATA BLOB NULL default 'EMPTY_BLOB()'
  

从命令行37开始出错:alter table TABLE_NAME ADD   FILE_DATA BLOB NULL默认'EMPTY_BLOB()'错误报告:SQL错误:   ORA-30649:缺少DIRECTORY关键字   30649.0000 - “缺少DIRECTORY关键字”
  *原因:DEFAULT DIRECTORY条款缺失或不正确。
  *行动:提供默认目录。

有人可以帮帮我吗?

我可以创建一个TYPE BLOB的新列,或者我可以将创建为VARCHAR的相同列转换为DEFAULT值 - 然后将类型更改为BLOB。但我无法解决其中任何一个问题。

1 个答案:

答案 0 :(得分:4)

假设您希望默认值为空BLOB而不是字符串'EMPTY_BLOB()',您只需要删除引号

SQL> create table new_table (
  2    col1 number
  3  );

Table created.

SQL> alter table new_table
  2    add( file_data blob default empty_blob() );

Table altered.