Oracle TimesTen随机字符串

问题描述 投票:0回答:1

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

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

但是出现错误代码:

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

有人知道问题的原因吗?

oracle in-memory-database timesten
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

© www.soinside.com 2019 - 2024. All rights reserved.