0

我想在 oracle TimesTen 中选择一个随机字符串(在内存数据库中),我的 EXEC 查询是这样的:

select DBMS_RANDOM.string('A', 6) AS "rnd" from dual

但引发的错误代码:

TT1001:SQL 语句之前或处的语法错误:“(”行错误:1 列:26

有谁知道问题的原因?

4

1 回答 1

0

目前 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

于 2019-11-12T16:02:24.810 回答