2020-09-08 10:19发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
大约一年以来,我们在HANA上使用"纯" SQL进行数据集成和暂存。 最大限制是通过命令EXEC执行的动态ic SQL语句的5000个字符的最大长度。 因此,我们创建了动态静态SQL语句(将它们写在表中),并将此表导出为文本文件,以便在命令行上使用HDBSQL执行。 这很烦人。 5000是一个人为限制(不是8192 ..)有什么方法可以设置更大的长度?
非常感谢!
据我所知,动态SQL语句没有特定限制,仅描述了此处(2,147,483,648字节)。
我猜您为动态SQL使用了VARCHAR或NVARCHAR类型 声明。 两种类型的长度均限制为5000(请查阅文档 )。
您可以使用 NCLOB 类型用于长度超过5000的语句。
如上所述,NVARCHAR的长度不能超过5000,即使您说它应该具有 长度为8192。请检查我上面已经链接的文档。
请声明NC_LOB类型的S_SQL。
非常感谢Florian,现在我明白了!
我认为变量字段和数据库字段之间的DATATYPE是相同的,而我在这方面是错的(请参见下面的示例)。
我现在在带有EXEC的NCLOB变量中使用了一个包含将近20.000个字符的SQL语句,它起作用了!
感谢您的快速响应。
N_COUNTER = 8192/16; FOR N_INTEGER IN 1 .. N_COUNTER DO S_PROCEDURE_STATUS = S_PROCEDURE_STATUS || '0123456789__'|| LPAD(N_INTEGER,4,'0'); 结束于; 从DUMMY中选择RIGHT(S_PROCEDURE_STATUS,22); -输出为'__05110123456789__0512',因此NVARCHAR类型的VARIABLE超过5000! 删除表ATH_40_STAGING.T_NVARCHAR_TEST; 创建表ATH_40_STAGING.T_NVARCHAR_TEST( S_NVARCHAR NVARCHAR(8192)NULL, N_LENGTH整数默认值-1 ); -无法执行'CREATE TABLE ATH_40_STAGING.T_NVARCHAR_TEST(S_NVARCHAR NVARCHAR(8192)NULL,N_LENGTH INTEGER ...' -SAP DBTech JDBC:[267]:指定的长度对于其数据类型而言太长:标识符" S_NVARCHAR"超过了最大长度5000:第2行第4行(在pos 49) -但是由于表的字段不起作用,因此这里仅是5000个字符的限制。
最多设置5个标签!
据我所知,动态SQL语句没有特定限制,仅描述了此处(2,147,483,648字节)。
我猜您为动态SQL使用了VARCHAR或NVARCHAR类型 声明。 两种类型的长度均限制为5000(请查阅文档 )。
您可以使用 NCLOB 类型用于长度超过5000的语句。
如上所述,NVARCHAR的长度不能超过5000,即使您说它应该具有 长度为8192。请检查我上面已经链接的文档。
请声明NC_LOB类型的S_SQL。
非常感谢Florian,现在我明白了!
我认为变量字段和数据库字段之间的DATATYPE是相同的,而我在这方面是错的(请参见下面的示例)。
我现在在带有EXEC的NCLOB变量中使用了一个包含将近20.000个字符的SQL语句,它起作用了!
感谢您的快速响应。
一周热门 更多>