--参数是检查表(in),检查表的字段(in),检查表的过滤条件(in),参照表(in),参照表字段(in),输出结果(out);
--返回出检查表字段不存在于参照表对应字段中的数据,多条数据的话进行拼接,只返回一条数据,
--例如检查表中有数据E10,E12,E19三个数据不存在于参照表,那么返回E10,E12,E19这样字符串的一条数据。--下面是我之前写的一个存储过程,在这基础上该怎么修改??create or replace procedure sp_chk_data_test
(
Result out varchar2,
Table_name in varchar2,
Column_name in varchar2,
Filter_value in varchar2
)
is
V_SQL varchar2(2000);
begin
V_SQL:='select count(*) from '||Table_name||' where '||Filter_value;
execute immediate V_SQL into Result;
end sp_chk_data_test;
--返回出检查表字段不存在于参照表对应字段中的数据,多条数据的话进行拼接,只返回一条数据,
--例如检查表中有数据E10,E12,E19三个数据不存在于参照表,那么返回E10,E12,E19这样字符串的一条数据。--下面是我之前写的一个存储过程,在这基础上该怎么修改??create or replace procedure sp_chk_data_test
(
Result out varchar2,
Table_name in varchar2,
Column_name in varchar2,
Filter_value in varchar2
)
is
V_SQL varchar2(2000);
begin
V_SQL:='select count(*) from '||Table_name||' where '||Filter_value;
execute immediate V_SQL into Result;
end sp_chk_data_test;
解决方案 »
- 【求助】oracle report developer卡死
- new_students := total_students (:major.class_id, 'N')中的:major是什么意思?
- 如何查询oracle中所有的schema名以及各个schema下的所有表名
- linux php 操作oracle数据库
- 要让a用户能看到和运行b用户下的过程,要在b用户下什么操作和赋权
- Oracle安装后,怎么创建数据库和相关权限的用户?
- DBMS指的是什么?
- 连接 数据库 问题!
- sqlcode=-1002是什么意思?怎么解决这个问题?
- 各位大佬这个选什么
- 关于function和proc返回结果集的问题
- 传入表名,字段名,条件,返回结果集的function或者proc
v_cz_table varchar2,
v_cz_ziduan varchar2)
return varchar2 is
result_out varchar2(1000);
v_sql varchar2(1000);
begin
v_sql := 'select wm_concat(' || v_cz_ziduan || ') from ' || v_in_table ||
' aa where not exisits (select 1 from ' || v_cz_table ||
' bb where aa.'||v_cz_ziduan||'= bb.'||v_cz_ziduan;
execute immediate v_sql into result_out;
return result_out;
end;
1、赋值数组 (我还没太掌握 ,嘿嘿)
2、直接拼接成字符串。(如果输出过程中有问题,你就直接把你筛选出来的东西插入到表中)
for my_cur in ( 你筛选的sql语句 )
--然后开始拼你的串 。
loop
my_cur.筛选结果||’,‘
end loop ;
具体你还得 调试一下吧, 用游标拼串输出
str:='';
for CUR in (select a from A minus select a from B)
loop
str:=str||CUR.a||','
end loop;
再把最后一个,去掉就行