我想在 oracle TimesTen 中选择一个随机字符串(在内存数据库中),我的 EXEC 查询是这样的:
select DBMS_RANDOM.string('A', 6) AS "rnd" from dual
但引发的错误代码:
TT1001:SQL 语句之前或处的语法错误:“(”行错误:1 列:26
有谁知道问题的原因?
我想在 oracle TimesTen 中选择一个随机字符串(在内存数据库中),我的 EXEC 查询是这样的:
select DBMS_RANDOM.string('A', 6) AS "rnd" from dual
但引发的错误代码:
TT1001:SQL 语句之前或处的语法错误:“(”行错误:1 列:26
有谁知道问题的原因?
目前 Oracle TimesTen 不支持从 SQL 语句中调用 PLSQL 函数。
最好的解决方法是创建一个 PLSQL 函数 [或包函数] 并从 PLSQL 调用该函数。
从 JDBC、ODBC、OCI 等宿主语言调用 PLSQL 函数在 TimesTen 中与在 Oracle RDBMS 中相同。
此示例适用于 TimesTen 11.2.2.8.x 和 18.1.x:
create or replace function rand_string return varchar2 is
str varchar2(255);
Begin
str := DBMS_RANDOM.string('A', 6);
Return str;
End;
/
set serveroutput on;
declare
s1 varchar2(255);
begin
dbms_output.put_line('Hi');
s1 := rand_string;
dbms_output.put_line('Random string is ' || s1);
end;
/
你好
随机字符串是 MlDYJy