因為如P_1,P_2 為空,那SELECT * FROM EMP
WHERE EMP_ID=P_1 AND EMP_NO=P_2;
就會查不到數據
WHERE EMP_ID=P_1 AND EMP_NO=P_2;
就會查不到數據
解决方案 »
- oracle 数据库读出的中文是一串正方形乱码
- 请高手解答下,谢谢了
- 关于使用java调用oracle中的describe语句的问题
- 触发器的这个声明是什么意思?
- 关于oracle的update的问题,望回复
- 高分求助在线等:一个表中有好多关联得数据,该怎么搜索这些记录?
- 我用一个getclob函数来读取clob值 为什么不行
- 求把一数据库表迅速导出oracle成为标准文本文件的方法
- 关于oracle数据库查询
- 请问哪有oracle9i pl/sql程序设计 电子图书?要清晰的
- 如何实现oracle与access的联接
- 各位大虾,哪里有关于Oracle这方面的适合初学者的电子图书下载啊,不胜感激!!谢谢
P_1 IN VARCHAR2 default null,
P_2 IN VARCHAR2 default null
)
AS
CURSOR c_TEST
IS
SELECT * FROM EMP
WHERE EMP_ID=nvl(P_1,0) AND EMP_NO=nvl(P_2,0);nvl函数判断是否为空
...
Else
...
End If;If P_2 Is Null Then
...
Else
...
End If;
IS
SELECT * FROM EMP
WHERE EMP_ID=P_1 AND EMP_NO=P_2;
在變量聲明處,不能用 if 語句
WHERE decode(P_1,null,0,EMP_ID,1,0)=1 and decode(P_2,null,0,EMP_NO,1,0)=1;
SELECT * FROM EMP
WHERE decode(P_1,null,1,EMP_ID,1,0)=1 and decode(P_2,null,1,EMP_NO,1,0)=1;
引用版主的东西:
--包头
create or replace package dinya_pkg_test
as
type myCursor is ref cursor;
function get(p_id number) return myCursor;
end dinya_pkg_test;
--包体
create or replace package body dinya_pkg_test
as
--******************************************************************
--输入ID 返回记录集的函数
function get(p_id number) return myCursor is
rc myCursor;
strsql varchar2(200);
begin
if p_id=0 then
open rc for select a.user_name from fnd_user a ;
else
strsql:='select a.user_name from fnd_user a where a.user_id=:p_id';
open rc for strsql using p_id;
end if;
return rc;
end get;
end dinya_pkg_test;
select * from EMP
where decode(P_1,null,1,EMP_ID)=decode(P_1,null,1,P_1)
and decode(P_2,null,1,EMP_NO)=decode(P_2,null,1,P_2);
請問 HorizonXR(地平线) 這樣寫會不會影響速度?