• 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;

  • 相关阅读:
    笔试算法题(51):简介
    笔试算法题(50):简介
    笔试算法题(49):简介
    笔试算法题(48):简介
    笔试算法题(47):简介
    笔试算法题(46):简介
    SQL Server 笔记
    SQL Server 2008 安装重启电脑失败
    列举某个目录文件
    Linux LAMP 配置
  • 原文地址:https://www.cnblogs.com/wang3680/p/12204354.html
Copyright © 2020-2023  润新知