⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time_limit.sql

📁 Oracle PLSQL for DBAs 源代码
💻 SQL
字号:
CREATE TYPE rowset_o AS OBJECT ( col1 NUMBER );
/
CREATE TYPE rowset_t AS TABLE OF rowset_o;
/

BEGIN
  FOR counter IN 1..30 LOOP
    INSERT INTO a_table
    VALUES(counter);
  END LOOP;
END;
/

CREATE OR REPLACE FUNCTION get_a_table ( p_limit NUMBER )
                  RETURN rowset_t
                  PIPELINED AS

  /*
    || Put a time limit on the records returned by this
    || table function
  */

  CURSOR curs_get_a IS
  SELECT *
    FROM a_table;
  v_start DATE;

BEGIN
  v_start := SYSDATE;

  FOR v_a_rec IN curs_get_a LOOP
    PIPE ROW(rowset_o(v_a_rec.col1));
    IF SYSDATE - v_start >= ( p_limit * 0.000011574 ) THEN
      PIPE ROW(rowset_o(-1));
      EXIT;
    END IF;
  END LOOP;

END;
/
SELECT *
  FROM TABLE(get_a_table(1))
/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -