怎么用Oracle 存过中执行多个查询SQL 并返回结果,SQL和返回结果都存在一张表里面 5

请问怎么用存过执行多个查询SQL并返回结果,SQL和返回结果都存在一张表里面,比如Table_1里面字段A存需要执行的SQL,字段B存跑的结果,有几十条需要执行的SQL,... 请问怎么用存过执行多个查询SQL 并返回结果,SQL和返回结果都存在一张表里面,比如Table_1里面字段A存需要执行的SQL,字段B存跑的结果,有几十条需要执行的SQL,一个SQL一条记录,有大神能帮忙写一个存过么,谢谢~ 展开
 我来答
韩福洁
2018-10-19 · TA获得超过623个赞
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:63.2万
展开全部

你这种要求不应该这么设计,首先你十几条的SQL的结果集字段类型和个数不一定一样,所以没法存储,只有你的SQL返回的结果集都一样或者可以枚举且字段类型均一样,这样就可以用自定义类型作为B字段。

解决方案一:单表存储结果

思路:要求所有的SQL返回结果集列数不多于N个,然后创建一个N个字段的TYPE,此处假设N=5,代码如下:

--创建多个字段的type
create or replace type test_column_type as object (
col_1     varchar2(300),
col_2     varchar2(300),
col_3     varchar2(300),
col_4     varchar2(300),
col_5     varchar2(300)
);
--创建引用多个字段的type
create or replace type test_tab_column_type as table of test_column_type;

--创建表
create table test_tab (
a     varchar2(300),
b     test_tab_column_type)
nested table b store as nested_tab return as value;


--写数据的语句
insert into test_tab
values
('1',test_tab_column_type(test_column_type(1,1,1,1,1),test_column_type(2,2,2,2,2)));

解决方案二:多表存储结果

思路:主子表,先创建一个表只用来存SQL,另外一个表存SQL的结果,大致如下:

create t_sql(
id   number,
a    varchar2(3000)
);
create t_sql_result(
id       number,
col1     varchar2(400),
col2     varchar2(400),
...
colN     varchar2(400)
);

如果所有SQL返回的列数都一样,那很简单,直接写到 t_sql_result 表里面即可。

如果SQL返回的列数不一样,则需要判断每个sql返回的列数,然后拼接动态SQL,将结果写入 t_sql_result 表。

折柳成萌
高粉答主

2018-10-17 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6323万
展开全部
set feedback off heading off term off
set pages 0 trim on trims on lines 32767 long 999999
set echo off
spool result.sql
Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
spool off
把以上部分放入一个脚本文件中再执行,会在当前目录下生成你要的文件result.sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tj_angela
2018-11-05 · TA获得超过7530个赞
知道大有可为答主
回答量:6797
采纳率:75%
帮助的人:2592万
展开全部
直接用spool轻轻松松, 不要把简单的问题想复杂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式