从B1 API运行时的Hana查询错误

时间:2019-12-27 10:25:42

标签: hana sapb1

我有一个查询,如果我在HANA Studio中运行了此查询,它可以正常工作。 示例:

DO
            BEGIN
            DECLARE UDTNameVar nvarchar(30);
            DECLARE UDTCodeVar nvarchar(30);
            DECLARE statement nvarchar(500);          
            UDTNameVar := 'V33_EXCHANGECODES';
            UDTCodeVar := '1';
            statement := 'SELECT * FROM "@'|| :UDTNameVar ||'" WHERE "Code" = ''' || :UDTCodeVar || '''';
            EXECUTE IMMEDIATE :statement;
            END;

如果我是从B1WebAPI运行的,则如下所示的相同查询给出了错误:

DO
            BEGIN
            DECLARE UDTNameVar nvarchar(30);
            DECLARE UDTCodeVar nvarchar(30);
            DECLARE statement nvarchar(500);            
            UDTNameVar := [%UDTName];
            UDTCodeVar := [%UDTCode];
            statement := 'SELECT * FROM "@'|| :UDTNameVar ||'" 
            WHERE "Code" = ''' || :UDTCodeVar || '''';
            EXECUTE IMMEDIATE :statement;
            END;

错误: <message>ERROR [S1000] [SAP AG][LIBODBCHDB32 DLL][HDBODBC32] General error;1287 identifier must be declared: 1: line 6 col 27 (at pos 194)</message>

任何人都可以告诉我查询失败的原因吗

1 个答案:

答案 0 :(得分:1)

我通过创建过程,然后调用该过程来执行下面给出的查询,从而解决了这个问题。