Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Postgres执行时出错_Sql_Postgresql - Fatal编程技术网

Sql Postgres执行时出错

Sql Postgres执行时出错,sql,postgresql,Sql,Postgresql,我正在使用这个函数 -- Function: dbo.sp_acc_createaccount(character varying, integer, integer, character varying, character varying, character varying, character varying) -- DROP FUNCTION dbo.sp_acc_createaccount(character varying, integer, integer, character

我正在使用这个函数

-- Function: dbo.sp_acc_createaccount(character varying, integer, integer, character varying, character varying, character varying, character varying)

-- DROP FUNCTION dbo.sp_acc_createaccount(character varying, integer, integer, character varying, character varying, character varying, character varying);

CREATE OR REPLACE FUNCTION dbo.sp_acc_createaccount(IN in_orgmgrtype character varying, INOUT in_parentid integer, IN in_levelid integer, IN in_name character varying, IN in_phone character varying, IN in_webpage character varying, IN in_owner character varying, OUT out_accountid integer)
  RETURNS record AS
$BODY$

DECLARE 

    l_CoID int;
    l_CurrID int;
    l_OrgMgrId int;

    errmsg varchar(250);

BEGIN

    IF in_ParentID = -1 THEN

      errmsg := 'execute sp_Acc_GetCompanyIDForUser failed';
      l_CoID := dbo.sp_Acc_GetCompanyIDForUser(in_user);

      IF l_CoID = -2 THEN
         RAISE EXCEPTION 'execute sp_Acc_GetCompanyIDForUser failed';
      END IF;

      errmsg := 'execute sp_Acc_GetOrgMgrIDForCompany failed';
      l_OrgMgrID := dbo.sp_Acc_GetOrgMgrIDForCompany(in_OrgMgrType, l_CoID);

      IF l_OrgMgrID = -2 THEN
         RAISE EXCEPTION 'execute sp_Acc_GetOrgMgrIDForCompany failed';
      END IF;

      in_ParentID := l_OrgMgrID;

    ELSE
      errmsg := 'Select orgmgrid failed';

      SELECT OrgMgrID INTO l_CurrID
        FROM dbo.OrgMgr
       WHERE Name = in_Name
         AND ParentID = in_ParentID;

    END IF;

    -- if not, add it
    IF l_CurrID IS NULL THEN
      errmsg := 'Insert into orgmgr(account creation) failed';

      INSERT INTO dbo.OrgMgr
          (ParentID, LevelID, Name, PrimaryPhone, WebPage, Owner)
      VALUES 
          (in_ParentID, in_LevelID, in_Name, in_Phone, in_WebPage, in_Owner);

      out_AccountID := currval('dbo.OrgMgr_accountid_seq');

    ELSE
      out_AccountID := -1;
    END IF;

    COMMIT;

EXCEPTION 

    WHEN RAISE_EXCEPTION THEN
        out_AccountID := 99;
        RAISE NOTICE 'ERROR : %',errmsg;
    WHEN OTHERS THEN
        out_AccountID := 99;
        RAISE EXCEPTION 'ERROR : %',errmsg;

END

$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;
ALTER FUNCTION dbo.sp_acc_createaccount(character varying, integer, integer, character varying, character varying, character varying, character varying) OWNER TO postgres;
但是。。它在执行时间中显示错误


错误:SPI\u执行计划执行查询“回滚”失败:SPI\u错误\u事务

我试图重现您的问题,但没有成功

该函数可以工作(在重建模式并删除不必要的提交之后)

如果仍然存在问题,请尝试编写一个自包含的测试用例。 即:

  • 需要运行的架构
  • 您运行的确切代码
  • 预期结果
  • 准确的错误消息,详细信息
  • 设置详细信息(软件版本,…)