0

私はDBに非常に慣れていません。私は Java 開発者であり、SQL 関数とは何の関係もありません。しかし今、SQL関数がdbで適切に実行されているかどうかを確認する必要がある状況にあります

CREATE OR REPLACE FUNCTION RATELIMIT_OWN.Get_Logs ( p_yyyymm VARCHAR2, p_numec NUMBER )
RETURN LOG_RECORD_TABLE PIPELINED IS

TYPE        ref0 IS REF CURSOR;
cur0        ref0;

out_rec     LOG_RECORD := log_record(NULL,NULL,NULL);

BEGIN

OPEN cur0 FOR
  'SELECT eventid, errormsg, create_date from logs partition (LOGS_P' || p_yyyymm || ') where numec=:1'
USING p_numec;

  LOOP
   FETCH cur0 INTO out_rec.eventid, out_rec.msg, out_rec.create_date;
   EXIT WHEN cur0%NOTFOUND;
   PIPE ROW(out_rec);
  END LOOP;
  CLOSE cur0;

RETURN;
END Get_Logs;
/

ヒキガエルでこの SQL 関数を実行する方法。通常の Select クエリ出力のような結果を見たい

4

3 に答える 3

3

テーブル値関数を確認するには、次を試してください。

select * FROM table(RATELIMIT_OWN.Get_Logs('a', 1));
于 2012-09-07T09:15:15.620 に答える
2
FOE EXECUTING THE FUNCTION    
SELECT RATELIMIT_OWN.Get_Logs(....,...) FROM DUAL ;

AND
ORA-00904:  MEAN COLUMN NAME IS NOT VALID PLSS CHECK THE COLUMN NAME 
于 2012-09-07T11:04:56.650 に答える
0

試す:

 select  RATELIMIT_OWN.Get_Logs(...) from dual;
于 2012-09-07T09:21:12.187 に答える