1.首先看下oracle中如何實現調用標准sql
create or replace function test_hk
RETURN date
IS
v1 DATE;
BEGIN
select sysdate into v1 from dual;
RETURN v1;
END test_hk;
/
--調用方法1:語句塊調用
set serveroutput on
declare
var_date date;
BEGIN
var_date:=test_hk();
dbms_output.put_line(var_date);
END;
--調用方法2:select
SELECT test_hk() FROM dual;
--其他調用方法參考 https://blog.csdn.net/qq_30934019/article/details/80557576
2.看下Inceptor中調用標准sql會出現什么問題
create or replace function test_hk()
RETURN date
IS
v1 DATE;
BEGIN
select sysdate into v1 from system.dual;
RETURN v1
END
/
--執行報錯:
SELECT test_hk() FROM system.dual;
SQL 錯誤 [30028] [42000]: COMPILE FAILED: Semantic error: [Error 30028] Line 1:7 PLSQL function is running in a non-driver environment, usually in SQL statement which doesn't allow nested SQL statement. Error encountered near token 'test_hk'
3.解決辦法:
--使用語句塊調用
DECLARE
v1 DATE;
BEGIN
v1:= test_hk();
dbms_output.put_line(v1)
END;
