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.


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM