Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql t使用此处的命令之一:不确定为什么会被否决-这对我来说似乎是个不错的建议。@monojohnny可能是因为获得创建Java函数的权限并不比获得对DBMS\u LOCK.SLEEP的权限容易。当然,这在理论上是可能的,但几乎可以肯定是不实际的。还有另一个答案_Sql_Oracle_Plsql_Oracle11g - Fatal编程技术网

Sql t使用此处的命令之一:不确定为什么会被否决-这对我来说似乎是个不错的建议。@monojohnny可能是因为获得创建Java函数的权限并不比获得对DBMS\u LOCK.SLEEP的权限容易。当然,这在理论上是可能的,但几乎可以肯定是不实际的。还有另一个答案

Sql t使用此处的命令之一:不确定为什么会被否决-这对我来说似乎是个不错的建议。@monojohnny可能是因为获得创建Java函数的权限并不比获得对DBMS\u LOCK.SLEEP的权限容易。当然,这在理论上是可能的,但几乎可以肯定是不实际的。还有另一个答案,sql,oracle,plsql,oracle11g,Sql,Oracle,Plsql,Oracle11g,t使用此处的命令之一:不确定为什么会被否决-这对我来说似乎是个不错的建议。@monojohnny可能是因为获得创建Java函数的权限并不比获得对DBMS\u LOCK.SLEEP的权限容易。当然,这在理论上是可能的,但几乎可以肯定是不实际的。还有另一个答案是同样的,只是用实际的示例代码。 CREATE OR REPLACE FUNCTION MYSCHEMA.TEST_SLEEP ( TIME_ IN NUMBER ) RETURN INTEGER IS BEGIN DBMS_LOC


t使用此处的命令之一:不确定为什么会被否决-这对我来说似乎是个不错的建议。@monojohnny可能是因为获得创建Java函数的权限并不比获得对
DBMS\u LOCK.SLEEP的权限容易。当然,这在理论上是可能的,但几乎可以肯定是不实际的。还有另一个答案是同样的,只是用实际的示例代码。
CREATE OR REPLACE FUNCTION MYSCHEMA.TEST_SLEEP
(
TIME_  IN  NUMBER
)
RETURN INTEGER IS
 BEGIN
   DBMS_LOCK.sleep(seconds => TIME_);
RETURN 1;
 EXCEPTION
   WHEN OTHERS THEN
   RAISE;
   RETURN 1;
END TEST_SLEEP;
SELECT TEST_SLEEP(10.5) FROM DUAL
IN_TIME INT; --num seconds
v_now DATE;

-- 1) Get the date & time 
SELECT SYSDATE 
  INTO v_now
  FROM DUAL;

-- 2) Loop until the original timestamp plus the amount of seconds <= current date
LOOP
  EXIT WHEN v_now + (IN_TIME * (1/86400)) <= SYSDATE;
END LOOP;
drop user usera cascade;
drop user userb cascade;
create user usera default tablespace users identified by abc123;
grant create session to usera;
grant resource to usera;
grant execute on dbms_lock to usera;

create user userb default tablespace users identified by abc123;
grant create session to userb;
grant resource to useb

connect usera/abc123;

create or replace function usera.f_sleep( in_time number ) return number is
begin
 dbms_lock.sleep(in_time);
 return 1;
end;
/

grant execute on usera.f_sleep to userb;

connect userb/abc123;

/* About to sleep as userb */
select usera.f_sleep(5) from dual;
/* Finished sleeping as userb */

/* Attempt to access dbms_lock as userb.. Should fail */

begin
  dbms_lock.sleep(5);
end;
/

/* Finished */
dbms_pipe.pack_message('XXX');<br>
dummy:=dbms_pipe.send_message('TEST_PIPE', 5, 1);
!sleep 1
host sleep 1
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED SNOOZE AS
public final class Snooze {
  private Snooze() {
  }
  public static void snooze(Long milliseconds) throws InterruptedException {
      Thread.sleep(milliseconds);
  }
}

CREATE OR REPLACE PROCEDURE SNOOZE(p_Milliseconds IN NUMBER) AS
    LANGUAGE JAVA NAME 'Snooze.snooze(java.lang.Long)';
SET SERVEROUTPUT ON ;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Start ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
    APEX_UTIL.PAUSE(5);
    DBMS_OUTPUT.PUT_LINE('End   ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
/
--- create ---
CREATE OR REPLACE PROCEDURE SLEEP (P_MILLI_SECONDS IN NUMBER) 
AS LANGUAGE JAVA NAME 'java.lang.Thread.sleep(long)';

--- use ---
SET SERVEROUTPUT ON ;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Start ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
    SLEEP(5 * 1000);
    DBMS_OUTPUT.PUT_LINE('End   ' || to_char(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
END;
/
DBMS_SESSION.SLEEP (seconds  IN NUMBER)
WITH FUNCTION my_sleep(i NUMBER)
RETURN NUMBER
BEGIN
    DBMS_SESSION.sleep(i);
    RETURN i;
END;
SELECT my_sleep(3) FROM dual;
CREATE OR REPLACE FUNCTION sleep(seconds IN NUMBER) RETURN NUMBER
AS
    PRAGMA AUTONOMOUS_TRANSACTION;
    message VARCHAR2(200);
    status  INTEGER;
BEGIN
    DBMS_ALERT.WAITONE('noname', message, status, seconds);
    ROLLBACK;
    RETURN seconds;
END;
SELECT sleep(3) FROM dual;