我正在开发 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;
现在我想每天或每小时自动执行此导出,但我找不到方法。 我尝试将此查询存储在存储过程中,但遇到语法错误。
我尝试创建一个存储过程,如下所示:
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语法错误:接近语法不正确。
我还尝试创建一个活动:
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位)
我也尝试创造工作:
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位)
您可以考虑使用动态 SQL 在存储过程中触发导出。但是,您还应该注意避免使用动态 SQL 的最佳实践。