只要isRoomLeft(ROOMID)返回的是一個有效的條件,在本sql語句里面可以執行就行。
你應該檢查這個函數返回的值是否正確。
你應該檢查這個函數返回的值是否正確。
解决方案 »
- 新手遇到的Toad显示数据的问题,请求大家的帮助。
- oracle导入dmp文件
- oracle
- 请教:所有的trigger都无法使用,提示properties of trigger_name not available
- 十万火急,求助UTL_FILE
- 大家帮忙看看,对Oracle,为什么Hibernate不能refresh
- 問一個select into 子句的問題
- java.sql.SQLException: 用尽的 Resultset 急!!!!!!急!!!!!版主救命!!
- PLSQL Developer怎么用?有教程吗?谢谢
- Oracle 问题,求大神解答
- oracle的long,long raw数据类型的操作问题
- 一个简单的SQL语句问题
我现在也没有找到原因!
SQL> select * from aa;ID FID
-- ---
1 0
2 1
3 1
4 2
5 3
6 4
6 57 rows selectedSQL>
SQL> CREATE OR REPLACE FUNCTION isRoomLeft(
2 p_id in varchar2)
3 RETURN boolean
4 IS
5
6 begin
7 if p_id='1' then
8 return true;
9 else
10 return false;
11 end if;
12 end;
13 /Function createdSQL> select * from aa where isRoomLeft(id);select * from aa where isRoomLeft(id)ORA-00920: 无效的关系运算符在函数中销为修改这种形式吧:
CREATE OR REPLACE FUNCTION isRoomLeft(
rid in RoomBookInfo.roomid%type)
RETURN number
IS
begin
if ... then --true
return 1;
else
return 0;
end if;
end;
/
在过程中:
v_sql := 'select * from Room where isRoomLeft(ROOMID)=1';
CREATE OR REPLACE FUNCTION isRoomLeft(
startTime IN varchar2,
endTime IN varchar2,
rid in varchar2)
RETURN number
IS
result number :=1;
sTime Date;
eTime Date;
begin
sTime :=to_date(''||startTime ||'','yyyy-mm-dd');
eTime := to_date(''|| endTime ||'','yyyy-mm-dd');
while sTime <= eTime loop
.....
sTime := sTime +1;
loop;
return result;
END;
/我的这个函数为什么不对呢
sTime :=to_date(startTime ,'yyyy-mm-dd');
eTime := to_date( endTime,'yyyy-mm-dd');
while sTime <= eTime loop
.....