如何在存储过程中存储“导出到”命令

问题描述 投票:0回答:1

我正在开发 SAP HANA BTP Cockpit。我创建了 1 个实例并进入数据库资源管理器。我创建了 1 个表并使用以下命令将该表传输到 AWS S3 存储桶:

Export into '<s3-Bucket-Region>://<Access Key>:<secret key>@<s3-bucket-name>/<path/folder>/Filename.csv' from USER.TABLE_NAME;

现在我想每天或每小时自动执行此导出,但我找不到方法。 我尝试将此查询存储在存储过程中,但遇到语法错误。

  1. 我尝试创建一个存储过程,如下所示:

    CREATE PROCEDURE EXPORT_TO_S3()
    LANGUAGE SQLSCRIPT
    AS
    BEGIN
        Export into '<s3-Bucket-Region>://<Access Key>:<secret key>@<s3-bucket-name>/<path/folder>/Filename.csv' from USER.TABLE_NAME;
    END;
    

    但它给了我错误:

    错误:(dberror)[257]:sql语法错误:接近语法不正确。

  2. 我还尝试创建一个活动:

    CREATE EVENT "HOURLY_SALES_UPDATE_EVENT"
    SCHEDULE START AT '2024-08-12 00:00:00' 
    EVERY 1 HOUR
    DO
    BEGIN
        Export into '<s3-Bucket-Region>://<Access Key>:<secret key>@<s3-bucket-name>/<path/folder>/Filename.csv' from USER.TABLE_NAME;
    END;
    

    但它给了我错误:

    错误:(dberror)[257]:sql语法错误:“EVENT”附近的语法不正确:第100行第7行(位于第8位)

  3. 我也尝试创造工作:

    CREATE JOB "HOURLY_SALES_UPDATE"
    START TIME '2024-08-12 00:00:00'
    RECURRING EVERY 1 HOURS
    AS BEGIN
        Export into '<s3-Bucket-Region>://<Access Key>:<secret key>@<s3-bucket-name>/<path/folder>/Filename.csv' from USER.TABLE_NAME;
    END;
    

    但它给了我错误:

    错误:错误:(dberror)[257]:sql语法错误:“JOB”附近的语法不正确:第93行第7行(位于第8位)

amazon-s3 stored-procedures scheduled-tasks hana job-scheduling
1个回答
0
投票

您可以考虑使用动态 SQL 在存储过程中触发导出。但是,您还应该注意避免使用动态 SQL 的最佳实践。

© www.soinside.com 2019 - 2024. All rights reserved.