Stored procedures DB2/400 UDF中的大小写敏感度?

Stored procedures DB2/400 UDF中的大小写敏感度?,stored-procedures,user-defined-functions,ibm-midrange,db2-400,rpgle,Stored Procedures,User Defined Functions,Ibm Midrange,Db2 400,Rpgle,我正在为服务程序过程编写一个SQL包装器。这个过程是可行的,但我正在创建的UDF的行为异常。当我使用externalname关键字创建UDF时,它变得区分大小写。以下是我的代码: create function C1ANEWF.getSalesAuditStorePeriodLibrary (inStore decimal(5,0), inDate date) returns char(10) ccsid 37 l

我正在为服务程序过程编写一个SQL包装器。这个过程是可行的,但我正在创建的UDF的行为异常。当我使用externalname关键字创建UDF时,它变得区分大小写。以下是我的代码:

create function C1ANEWF.getSalesAuditStorePeriodLibrary
                   (inStore decimal(5,0),
                    inDate  date)
returns char(10) ccsid 37

language rpgle
parameter style general
specific sa1802f001
not deterministic
reads sql data
returns null on null input
not fenced
program type sub
no final call
allow parallel
no scratchpad
external name C1NEWO.SA1802("getSalesAuditStorePeriodLibrary")
当我创建这个时,它就工作了。如果我从过程名称中删除
,则不会删除。我有很多SQL UDF,我没有使用
,区分大小写不是问题


有什么想法吗?

将子进程名称用引号括起来,告诉DB2使用与引号完全相同的名称,即混合使用。如果对该过程的调用仅在以混合大小写注册函数时有效,那么您的调用似乎也必须使用混合大小写。调用语句是否使用双引号?如果是这样的话,也将它们删除。

将子进程名称括在引号中,告诉DB2使用与引号完全相同的名称,即混合使用。如果对该过程的调用仅在以混合大小写注册函数时有效,那么您的调用似乎也必须使用混合大小写。调用语句是否使用双引号?如果是这样,也将其删除。

显示服务程序的过程导出,带有
DSPSRVPGM\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu详细信息(*PROCEXP)
。您将看到过程名称是大小写混合的。现在看看你的一个旧的服务项目。您将看到大写名称


SQL中的引号确保使用混合大小写,从而匹配过程名称,该过程名称区分大小写。如果没有这些引号,名称将被转换为大写,这将与您的旧程序相匹配。

显示服务程序的程序导出,并带有
DSPSRVPGM\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu详细信息(*PROCEXP)
。您将看到过程名称是大小写混合的。现在看看你的一个旧的服务项目。您将看到大写名称


SQL中的引号确保使用混合大小写,从而匹配过程名称,该过程名称区分大小写。如果没有这些引号,名称将被翻译成大写,这将与您以前的过程相匹配。

谢谢。我的假设是RPG总是不区分大小写。查看服务程序,EXTPROC是使用引号定义的,这使得它区分大小写。谢谢。我的假设是RPG总是不区分大小写。查看服务程序,EXTPROC是使用引号定义的,这使得它区分大小写。