我使用node.js,oracle和oracledb模块。我也有一个像这样的简单PL / SQL过程
procedure mock_lobs(
P_CLOB IN OUT CLOB,
P_BLOB IN OUT BLOB
)
AS
BEGIN
NULL;
END mock_lobs;
它准确返回已传递的内容。
然后我使用API clob = connection.createLob(oracledb.CLOB)
创建一个临时CLOB对象
并用一些clob.write(chunk)
将Clob传递给过程执行后,我收到生成的CLOB对象并尝试读取它。我看到我的块在每个块之后都写有额外的空格。当我写一个长度为4个符号的类似"abcЩ"
的字符串时,它被写为"abcЩ "
(每个非ASCII符号的尾部空格)。换句话说,已写块的大小等于原始字符串占用的字节数。
我已经尝试为Clob指定utf8
编码,例如:clob.setEncoding('utf8')
,甚至在编写clob.write(chunk, 'utf8')
时也是如此,但是结果始终相同。
问题解释是什么?我想念什么?
答案 0 :(得分:0)
node-oracledb
的维护者确认这是一个错误。因此,我们将为下一个版本作好准备!