1

系统中已安装edbplus

我想用批处理文件(test.bat)调用test.sql文件,然后test.sql文件调用数据库中的存储过程,然后将处理结果输出到日志文件但是现在出现了一些问题,我无法得到正确的返回结果,可能是test.log的语法问题,请帮我解决一下

详情如下:</p>

操作系统详情: windows server 2019

数据库版本:edb 12.3.4

测试.bat:

    echo  ======batch start=====  >> C:\Users\Administrator\Desktop\TEST\test.log
    call edbplus user/password@localhost:5444/edb @C:\Users\Administrator\Desktop\TEST\test.sql
    echo  return_code: %errorlevel%  >> C:\Users\parasol\Desktop\TEST\test.log
    echo  ======batch end=====  >> C:\Users\Administrator\Desktop\TEST\test.log

测试.sql:

    declare 
      return_code number;
    begin
    select get_status() into return_code;
    end;
    /
    exit return_code

数据库中的程序:</p>

    CREATE OR REPLACE FUNCTION get_status()
     RETURNS numeric
     LANGUAGE edbspl
     SECURITY DEFINER
    AS $function$
    v_status      number;
    BEGIN
      v_status := 5;
      RETURN v_status;
    END GET_STATUS$function$
    ;

预期输出日志:</p>

======batch start=====
return_code: 5
======batch end=====

实际输出日志

======batch start=====
return_code: 1
======batch end=====

控制台的日志输出:</p>

Connected to EnterpriseDB 12.3.4 (localhost:5444/sis) AS enterprisedb

 EDB-SPL Procedure successfully completed.

Invalid EXIT/QUIT command, try
   EXIT | QUIT [SUCCESS | FAILURE | WARNING | value | sub_variable]
               [COMMIT | ROLLBACK]
Disconnected from EnterpriseDB Database.
4

0 回答 0