当我从前端检索xml文件时,我尝试将来自xml的数据放入oracle表中的blob列 . 但我得到以下错误;
ORA-01465:十六进制数无效
前端他们发送二进制对象类型 .
这里的XML标签包含以下细节 .
<Contents>MzEvMDcvMjAxNA0KMS4gRmluZCBhIHdheSB0byBzdG9wIHBvc3RiYWNrIGluIFRyZWUgR3JpZCBpbiBDYWhydCBPZiBBY2NvdW50cyBNb2R1bGUgLSBEb25lDQoyLiBJcyBEaXNidXJzZSBGb3JtdWxhIHNhbWUgYXMgRm9ybXVsYQ0KMDYvMDgvMjAxNA0KMS5DaGFuZ2UgRGViaXRDcmVkaXQgdG8gRGViaXRDcmVkaXROb3RlDQoyOS8wOC8yMDE0DQoxLlNhbGVzIC0gQXV0aGVudGljYXRpb24gcmVxdWlyZWQgZm9yIG1vcmUgb3B0aW9ucw0KMi5IaXN0b3J5IC0gT3B0aW9uIHRvIHZpZXcgaXRlbSBsaXN0DQozLkNhc2hUaWxsIC0gT3B0aW9uIHRvIHNwZWNpZnkgSW4vT3V0DQowMy8wOS8yMDE0DQooVG8gQ2FzaCBUaWxsKQ0KMS5BZGQgQ2xlYXIgQnV0dG9ucyB0byBidXR0b25zIHN0cmlwIC0gRG9uZQ0KMi5TZWFyY2ggbm90IHdvcmtpbmcNCjMuRG91YmxlIGNsaWNrIGZlYXR1cmUgdG8gaW5jcmFzZSBpdGVtcyAtIERvbmUNCjQuQWRkIENsZWFyICYgUmVtb3ZlIGJ1dHRvbiB0byBrZXkgcGFkIC0gRG9uZQ0KNS5HaXZlIGFuIG9wdGlvbiB0byBjaGFuZ2UgY29sb3IgYW5kIGltYWdlIGR5bmFtaWNhbGx5Lg0KNi5NYWtlIGRlZmFsdXQgdGhyZWUgYnV0dG9ucyBhIHJvdyAtIERvbmUNCjcuQXJyYW5nZSBCdXR0b25zDQowOS8wOS8yMDE0DQoxLk1vZGlmeSBNYXN0ZXIgVUkgYXMgZGlzY3Vzc2VkDQoyLkZpbmFsaXplIENhc2ggVGlsbCB0byBFRg0KMy5EYXRhIFBhZ2UgdG8gcHVzaCBhbmQgcHVsbCBkYXRhIEN1c3RvbWVyL0l0ZW0vTGVnYWwgVGVuZGVycw0KMTkvMDkvMjAxNA0KMS4gU3luY2hvbml6ZWQgYml0IHRvIGNoZWNrIFNhbGVzIGFucyBTYWxlcyBSZXR1cm5zIGJlZm9yZSBpbml0aWFsIGRhdGEgbG9hZCBhbmQgc2hvdyBtZXNzYWdlLg0KMi4gQWRkIHByb2dyZXNzIGJhciBhbmQgYnV0dG9ucyBmb3IgUHJvZHVjdCwgQ3VzdG9tZXIgYW5kIFByb21vdGlvbnMgU2VwZXJhdGVseS4NCjMuIEZpbmFsaXplIHNlc3Npb24gZm9yIGxvZ2luIC0gRG9uZQ0KMjIvMDkvMjAxNA0KMS4gSW50ZXJmYWNlIGZpbmFsaXphdGlvbiAtIERvbmUNCjIuIEdldCBtZXNzYWdlIGZvciB1bnN5bmNlZCBkYXRhLiBJbnZvaWNlL1NhbGVzIFJldHVybi9Wb3VjaGVyL0NvdXBvbi9PcGVyYXRvci9DYXNoVGlsbC9TZXNzaW9uSW5mb3JtYXRpb24gLSBEb25lDQozLiBTZW5kIFVuc3luY2VkIGRhdGEgdG8gc2VydmVyLiBDcmVhdGUgYSBzY3JlZW4uIFNlcGVyYXRlIGRhdGEgcGFnZSAtIERvbmUNCjIzLzA5LzIwMTQNCjEuIFZlcmlmeSBkb3dubG9hZCBkYXRhIC0gRG9uZQ0KMi4gVmVyaWZ5IGluaXRpYWxEYXRhIExvYWQgd2l0aCBtZXNzYWdpbmcNCjMuIE5ldyBvcHRpb24gdG8gZ2V0IG9wZXJhdG9ycyBzZXBlcmF0ZWx5IC0gRG9uZQ0KNC4gR2V0IHByb2R1Y3RzIHNob3VsZCBpbmNsdWRlIHByb21vdGlvbnMgLSBEb25lDQo1LiBSZW1vdmUgZGF0YSB1cGxvYWQvZG93bmxvYWQgdmFsaWRhdGlvbiAtIERvbmUNCjYuIE9wZXJ0b3IgcGFzc3dvcmQgY2hhbmdlIHNob3VsZCB3b3JrIHdpdGggc2VydmljZS4gcmVtb3ZlIGxvY2FsIHBhc3N3b3JkIHNhdmUuIC0gRG9uZQ0KMjQvMDYvMjAxNA0KMS4gU2FsZXMgUmV0dXJuIGRhdGEgdXBsb2FkIC0gRG9uZQ0KMi4gTWVzc2FnaW5nIHdpdGggc2NyZWVuIGZpbmV0dW5pbmcNCjMuIFhtbCBnZW5lcmF0aW9uIC0gRG9uZQ0KMjUvMDkvMjAxNA0KMS4gRGVmaW5lIHBybyBjbGFzcyBiYXNlIG9uIHRoZSBzYWxlcyBncmlkLiAtIERvbmUNCjIuIEFzeW5jIHRvIFN5bmMgbWV0aG9kIGluIGxvZ2luIC0gRG9uZQ0KMy4gWG1sIHZlcmlmaWNhdGlvbiBmb3IgZGF0YSB1cGxvYWQNCjI5LzA5LzIwMTQNCjEuIA0KMi4gSW52b2ljZSBJbnNlcnQgdG8gbG9jYWwgZGF0YWJhc2UsIA0KMDEvMTAvMjAxNA0KMS4gU2VuZCBvcGVyYXRvciBzZXNzaW9uIGJlZm9yZSBkYXRhIHVwbG9hZCAtIERvbmUNCjIuIEltcGxlbWVudCBwcmV2aWxhZ2VzDQozLiBSZXR1cm4gbWV0aG9kcyBpbnRlcmZhY2UgbW9kaWZpY2F0aW9uDQoxMC8wOS8xNA0KMS4gU2Vzc2lvbiwgU2Vzc2lvbiBEZXRhaWwsIENhc2ggVGlsbCwgU2FsZXMsIFNhbGVzIFJldHVybg0KMi4gUGFzd29yZCBjYW4gYmUgY2hhbmdlZCBvbmx5IHRoZSB1c2VyIGlzIG9ubGluZS4gUGFzc3dvcmQgd2lsbCBiZSB1cGRhdGVkIG9uY2UgdGhlIHVwbG9hZCBjb25maXJtZWQgYnkgdGhlIHNlcnZpY2UuDQozLiBDYXNoIHRpbGwgbmVlZHMgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgdXNlcnMgd2hvIGhhcyBhbiBhY3RpdmUgY2FzaHRpbGwuDQoxMS8wOS8yMDE0DQoxLiBDYXNodGlsbCBJc3N1ZQ0KMi4gU2hvcCBDbG9zZSBDYXNoVGlsbHMgbXVzdCBiZSBjbG9zZWQuIEFsbCB1c2VycyBtdXN0IGJlIGxvZ2dlZCBvdXQsIGFsbCBkYXRhIG11c3QgYmUgc3luY2VkLg0KMy4gRGF0YSBVcGxvYWQNCjQuIFJlbW92ZSBPQkpDRVQgd3JhcHBlciBpbiBwYXNzd29yZCBjaGFuZ2UgWE1MDQo1LiBDaGVjayB0ZXJtaW5hbCBvcGVycmF0b3JzIGluc2VydCBpbiBkYXRhIGRvd25sb2FkDQo2LiBTZXQgdG8gMTAgd2hlbiB1bmFibGUgdG8gY3JlYXRlIHNlc3Npb24NCjcuIHNhbWUgZ29lcyB0byBhcHByb3ZhbA0KMTUvMDkvMjAxNA0KMS4gU2hvdyBkaXNjdW50IHByZWNlbnRhZ2Ugb24gQmVmb3JlIEludm9pY2UgKERvY2tldCBEaXNjb3VudCwgT3ZlcnJpZGUgRGlzY291bnQpDQoyLiBJbnZvaWNlIHJldHVybiBhbW91bnQvSW52b2ljZSBEYXRlDQoyMi8xMC8yMDE0DQoxLiBEb2NrZXQgaGlzdG9yeSBwcmludGluZyAtIERvbmUNCjIuIGRvY2tldCBzY2FuIHNlYXJjaCB3aXRob3V0IHNlYXJjaCBidXR0b24gLSBEb25lDQozLiByZXR1cm4gYW1vdW50IG5vdCBjYWxjdWxhdGluZyBhZnRlciBzY2FuIC0gRG9uZQ0KNC4gY2xlYXIgdGV4dGJveCBhZnRlciBzY2FuIC0gRG9uZQ0KDQo=</Contents>
这个查询 . 我试着找回 .
SELECT CONTENT
FROM XMLTABLE ('/OBJECT/CommonFileUpload/CommonFileUploadFileList/CommonFileUploadFile'
PASSING (SELECT XMLCOL FROM BIZZXE_V2_SCH.B)
COLUMNS CONTENT BLOB PATH 'Contents') T
这是我的示例目标表
CREATE TABLE "TEST"
( `"CONTENT" BLOB`
)
1 回答
当我们尝试将字符串放入BLOB字段时,Oracle抛出错误
ORA-01465: invalid hex number
. 我们需要先将其转换为二进制格式 . 我们可以使用UTL_RAW.CAST_TO_RAW()函数完成此操作 . Find out more .但是,这里有一个二进制编码的字符串表示 . 将它存储为BLOB是没有意义的 . 你应该做的是将它存储为CLOB;当前端查询
Contents
按原样返回该字符串时,让它们解码它 .为了记录,这里是我用于从XMLType列中提取
Contents
元素并将其存储为BLOB的代码:这是结果:
不是很有用 .