Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 


在SAP HANA中有一些语句无法在script中直接执行。可以用一些work around来完成相应的功能。

1) roll back和commit:

直接执行会报syntax error,可以用变量的方式执行:

DROP PROCEDURE EXCEPTION_HANDLING_TEST;

/* Creating a Procedure for testing Predefined Exception Handling */

CREATE PROCEDURE EXCEPTION_HANDLING_TEST (OUT Status_Code INTEGER ) AS

BEGIN

DECLARE  var_commit  VARCHAR(100) := 'COMMIT';

DECLARE var_rollback VARCHAR(100) := 'ROLLBACK' ;

DECLARE EXIT HANDLER FOR SQLEXCEPTION

BEGIN

EXEC (:var_rollback);

INSERT INTO "ERROR_LOGS" ( error_no,error_cd,error_msg ) VALUES ( <schemaname>.SNO.NEXTVAL,::SQL_ERROR_CODE,::SQL_ERROR_MESSAGE );

Status_Code := 1;

END;

INSERT INTO EMPLOYEE_TEST VALUES (1);

INSERT INTO EMPLOYEE_TEST VALUES (1); -- Again inserting 1 will result in unique violation error

EXEC (:var_commit);

Status_Code := 0;

END;


2) create user

报错:

"CREATE USER is not allowed in SQLScript...."

参照KBA 1967438,用exec的方式执行。

3) BACKUP CATALOG DELETE ALL BEFORE BACKUP_ID :backup_id WITH BACKINT

报错:

"Error creating procedure;sql syntax error: System management statement

is not allowed in SQLScript: line 5 col 1 (at pos 213) at

qp_gram.y:36851"

参照KBA 1967438,用exec的方式执行。