如何从sqldeveloper中的insert语句插入BLOB列?

chr*_*ris 30 oracle blob oracle-sqldeveloper

是否可以BLOB使用sqldeveloper 插入oracle中的列?

即:像:

insert into mytable(id, myblob) values (1,'some magic here');
Run Code Online (Sandbox Code Playgroud)

Nic*_*tto 42

VARCHAR2BLOB列中插入,您可以依赖utl_raw.cast_to_raw下一个函数:

insert into mytable(id, myblob) values (1, utl_raw.cast_to_raw('some magic here'));
Run Code Online (Sandbox Code Playgroud)

它会将您的输入VARCHAR2转换为RAW数据类型而不修改其内容,然后它会将结果插入到您的BLOB列中.

有关该功能的更多细节 utl_raw.cast_to_raw


Cod*_*odo 35

是的,这是可能的,例如使用从RAW到BLOB的隐式转换:

insert into blob_fun values(1, hextoraw('453d7a34'));
Run Code Online (Sandbox Code Playgroud)

453d7a34是一串十六进制值,首先显式转换为RAW数据类型,然后插入BLOB列.结果是BLOB值为4个字节.

  • 不幸的是,如果BLOB大于2000字节,这将无法工作 - 因为Oracle中存在一个限制,即char常量不能超过4000个字符. (4认同)