【发布时间】:2019-08-27 11:31:35
【问题描述】:
我正在使用 PLPDF 的库为各种文件创建电子表格 - 我正在尝试编写一个程序来获取每个字段的值并将它们逐个插入电子表格中。此操作可以包括进入许多不同电子表格的许多不同表,因此仅执行导出不会减少它。
这个例子有两个从表中创建的游标——USER_TAB_COLUMNS用来选择列名,实际的视图查询用来拉取数据。我有一个循环逐条遍历数据记录,第二个循环逐个字段地遍历记录。
在对电子表格 blob 进行实际写入之前,我只需运行 dbms_output.putline 以确保获得所需的数据。
declare
q_str varchar2(100);
this_vc varchar2(3000);
cursor diet_table is
select * from vcars_diet where nhp_id = 8573;
cursor diet_stru is
select 'begin :1 := i.' || column_name || '; end;' line_o_code from user_tab_columns where table_name = 'VCARS_DIET';
begin
for i in diet_table loop
DBMS_OUTPUT.PUT_LINE ('--------------------------------------------------------');
for h in diet_stru loop
DBMS_OUTPUT.PUT_LINE ('Varchar Value for i: "' || h.line_o_code || '"');
EXECUTE IMMEDIATE (h.line_o_code) USING out this_vc;
DBMS_OUTPUT.PUT_LINE ('Varchar Value for i.' || h.line_o_code || ' is: '||this_vc);
end loop;
end loop;
end;
饮食表中的字段是:
NHP_ID
DATE_TIME
DIET_NO
FORM_NAME
DATA_TYPE
结果是:
ORA-06550:第 1 行,第 13 列: PLS-00201:必须声明标识符“I.NHP_ID” ORA-06550:第 1 行,第 7 列: PL/SQL:语句被忽略 ORA-06512:在第 33 行 06550. 00000 - “第 %s 行,第 %s 列:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:
【问题讨论】:
标签: sql plsql execute-immediate