oracle 10g中我需要获取一个随机数,在用下面语句
select abs(mod(dbms_random.random,100)) from dual;
测试的时候提示ORA-00904: 无效字符
但改用SYS AS DBA登入执行同一语句能够得到一随机数。
请问下有没有朋友知道如何解决。
select abs(mod(dbms_random.random,100)) from dual;
测试的时候提示ORA-00904: 无效字符
但改用SYS AS DBA登入执行同一语句能够得到一随机数。
请问下有没有朋友知道如何解决。
识别不了
grant connect to w2;
select abs(mod(dbms_random.random,100)) from dual;ABS(MOD(DBMS_RANDOM.RANDOM,100
61 其实我很纳闷,你是不是包名函数名写错了?
dbms_random这是sys包,每个用户都能访问才对
你看我随便建个用户,只赋给connect权限都能调用成功
还不行的话看看不能调用random的用户的权限
调用别的系统函数试试
比如 一些数学函数
或
dbms_output.put_line()
先用sys/ as sysdba来授权
GRANT EXECUTE ON SYS.dbms_random TO [你的用户名]再用自己的用户登陆
CREATE SYNONYM dbms_random FOR sys.dbms_random
declare
i1 integer;
begin
select abs(mod(dbms_random.random,100)) into i1 from dual;
dbms_output.put_line('生成随机H1=' || i1 || ';');
end;
先用sys/ as sysdba来授权
GRANT EXECUTE ON SYS.dbms_random TO [你的用户名]再用自己的用户登陆
CREATE SYNONYM dbms_random FOR sys.dbms_random
OK 了,
非常感谢!!!!