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

标签 sql oracle10g blob alter

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

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

Error starting at line 37 in command: alter table TABLE_NAME ADD FILE_DATA BLOB NULL default 'EMPTY_BLOB()' Error report: SQL Error: ORA-30649: missing DIRECTORY keyword 30649.0000 - "missing DIRECTORY keyword"
*Cause: DEFAULT DIRECTORY clause missing or incorrect.
*Action: Provide the DEFAULT DIRECTORY.

有人能帮帮我吗?

我可以创建一个 TYPE BLOB 的新列,或者我可以将创建为具有 DEFAULT 值的 VARCHAR 的同一列转换为 DEFAULT 值,然后将类型更改为 BLOB。但我无法做到他们中的任何一个。

最佳答案

假设您希望默认值为空 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.

关于sql - 更改表 - 为 COLUMN 类型 BLOB 添加默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688233/

相关文章:

c# - 查询问题 - 在 sql navigator 中运行查询时返回行,但不在我的 c# 程序中

sql - 使用 table2、table3 合并到 Table1(多个条件)?缺少语法

php - 如何显示来自 mysql blob 的图像

sql - 在 Postgres 中以周为单位拆分间隔

java - 如何修复 : Embedded H2 Database "NonTransientError: Unable to read the page at position" error?

java - 如何使用 JDBC 为 Oracle 10g 设置字符编码

php - 将 blob 图像(存储在数据库中)下载到我的计算机

java - 在JAVA中将base64图像转换为Sql Blob

sql - 将值数组传递到 TVF 参数中的最简单方法是什么

sql - JOIN/GROUP 选择最早