ColA ColB ColC ColD
A B C D
A F G
B H I
现在我想得到的结果如下
ColA ColD
A D
A G
B I
也就是说B和C是传入的参数,如果没有内容就查找所有的,如果有就只显示满足条件的,像上面的如果B传入的是B则结果如下:
ColA ColD
A D
A B C D
A F G
B H I
现在我想得到的结果如下
ColA ColD
A D
A G
B I
也就是说B和C是传入的参数,如果没有内容就查找所有的,如果有就只显示满足条件的,像上面的如果B传入的是B则结果如下:
ColA ColD
A D
par_B in varchar2,
par_C in varchar2
) as
var_count number;
var_B varchar2(5);
var_C varchar2(5);
strSql varchar2(1000);
type cursor_t is ref cursor;
result_cur cursor_t ;
print_cur table_name%ROWTYPE;BEGIN
strSql := '';
select count(*) into var_count from table_name t where t.ColB = par_B and t.ColC = par_C;
-- if jude count--
IF (var_count = 0) THEN
strSql := 'select * from table_name';
ELSE
strSql := 'select * from table_name t where t.ColB = par_B and t.ColC = par_C';
END IF;
OPEN result_cur FOR strSql;
LOOP
FETCH result_cur INTO print_cur;
EXIT WHEN result_cur%NOTFOUND;
dbms_output.put_line('ColA:'||print_cur.ColA||' ColD:'||print_cur.ColD);
END LOOP;
CLOSE result_cur;
END sp_test;