【发布时间】:2015-03-18 23:41:51
【问题描述】:
我正在尝试编写一个过程,该过程将使用数据库中的某些数据填充 CLOB 对象。
我有一个存储在表中的 SQL 选择查询。我正在获取该查询并在过程中执行它以获取一列数据(供应商 ID)。 我将查询存储在数据库中的原因是它经常更改,但它会提供与结果相同的列。 现在我试图把这些数据放在一个 CLOB 对象中,这就是我卡住的地方。 我无法从 CLOB 对象中的 v_report_type 获取供应商 ID。
谁能指导我编写正确的代码。
下面是我在程序中写的sn-p。
DECLARE
TYPE report_type IS TABLE OF supplier.supplier_id%TYPE
v_report_type report_type;
v_query1 varchar(4000);
v_report_clob CLOB;
BEGIN
v_report_clob:= null;
select query1 into v_query1 from report_query where report_id = 20;
EXECUTE IMMEDIATE v_query1 BULK COLLECT INTO v_report_type;
v_report_clob := v_report_clob||v_report_type;
//Unrelated code here
END;
问候 尼玛利亚
【问题讨论】:
-
现在会发生什么?你得到什么错误?您希望 CLOB 看起来像什么 - 您希望列值只是连接在一起,还是以某种方式分隔? ID列的数据类型是什么?
-
我在
v_report_clob := v_report_clob||v_report_type;ORA-06550: line 17, column 15: PLS-00306: wrong number or types of arguments in call to '||' ORA-06550: line 17, column 1: PL/SQL: Statement ignored行中收到以下错误 -
@Alex Poole 主要目的是将CLOB插入另一个表中。我想查看一个低于另一个的供应商 ID。数据类型为varchar2(10)