gpt4 book ai didi

sql - 如何将十六进制数据插入到oracle表中?

转载 作者:行者123 更新时间:2023-12-02 01:11:21 32 4
gpt4 key购买 nike

我有下表:

create table o_newstdata1 (
field1 raw(8)
);

以下输入数据文件:

0x12345678
0x1234
0x12

如何将这样的数据插入到我的 o_newstdata1 表中?

我尝试将其作为 varchar 数据加载:

load data
INFILE '/export/home/mine/input.data'
replace
into table o_newstdata1
trailing nullcols
(
field1 varchar (8)
)

并查询了这样的内容:

select field1 from o_newstdata1 where utl_raw.cast_to_raw(field1) like '0x1234';

但它不起作用,有什么建议吗?

最佳答案

可能有两个错误来源:

  1. 使用 SQL*Loader 加载原始数据
  2. 查询原始数据

要检查查询部分是否有效,请使用类似的东西:

CREATE TABLE o_newstdata1 (field1 RAW(8)); 
INSERT INTO o_newstdata1(field1) VALUES ('12AB');
INSERT INTO o_newstdata1(field1) VALUES ('34EF');

不需要转成raw,直接用Oracle的hex格式即可。版本 1 使用从 RAWVARCHAR2 的隐式转换,版本 2 显式转换:

SELECT * FROM o_newstdata1 WHERE field1 = '12AB';
SELECT * FROM o_newstdata1 WHERE rawtohex(field1)='12AB';

关于sql - 如何将十六进制数据插入到oracle表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17080589/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com