Oracle11g ORA-06502:PL/SQL:数字或值错误:字符串缓冲区
运行ColdFusion 2016应用程序时出现以下错误: 错误显示: [Macromedia][Oracle JDBC驱动程序][Oracle]ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小ORA-06512:在“PROC_CHECKDATA”第1064行ORA-06512:在第1行 它与调用存储过程并运行它有关。当我在ColdFusion 8中运行它时,这些代码可以运行多年,但一旦我转到ColdFusion 2016,它就会出错。我不太明白这个错误是怎么说的。我很感激能得到的任何帮助。非常感谢你 以下是我的程序调用:Oracle11g ORA-06502:PL/SQL:数字或值错误:字符串缓冲区,oracle11g,coldfusion,Oracle11g,Coldfusion,运行ColdFusion 2016应用程序时出现以下错误: 错误显示: [Macromedia][Oracle JDBC驱动程序][Oracle]ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小ORA-06512:在“PROC_CHECKDATA”第1064行ORA-06512:在第1行 它与调用存储过程并运行它有关。当我在ColdFusion 8中运行它时,这些代码可以运行多年,但一旦我转到ColdFusion 2016,它就会出错。我不太明白这个错误是怎么说的。我很感激能得到
<cfstoredproc procedure="PROC_CHECKDATA" datasource="#application.DSN#">
<cfprocparam type="in" cfsqltype="CF_SQL_CHAR" DBVARNAME="ins" value="#url.ins#" MAXLENGTH="2">
<cfprocparam type="in" cfsqltype="CF_SQL_CHAR" DBVARNAME="ly" value="#url.ly#" MAXLENGTH="4">
<cfprocparam type="inout" cfsqltype="CF_SQL_VARCHAR" DBVARNAME="summary" variable="summary" value="">
<cfprocparam type="inout" cfsqltype="CF_SQL_VARCHAR" DBVARNAME="continue" variable="continue" value="">
<cfprocresult name="errors" resultset="1">
</cfstoredproc>
这是存储过程(在Oracle 11g中):
创建或替换过程proc\u checkparentdata(
v_机构字符默认为空,
v_load_year,字符默认为NULL,
v_summary OUT VARCHAR2,/*默认值'*/
v_continue OUT VARCHAR2,/*默认值'*/
cv_1输出系统(参考光标)
作为
v_行数(10,0);
v_错误计数(5,0);
开始
--清晰的评论
更新um\u父项\u临时
设置注释=“”
其中,负载年=负载年,机构=负载机构;
--明确身份
更新um\u父项\u临时
设置状态=“”
其中,负载年=负载年,机构=负载机构;
--校园代码
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“校园代码:”
||机构
如果机构不在('BC'、'CP'、'ES'、'FS'、'SU'、'TU'、'UC')
和负载年=v负载年
和机构=v_机构;
/*父1*/
--名字
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“缺少父名字1”
式中,NVL(修剪(母螺纹fn1),“”)=”
和负载年=v负载年
和机构=v_机构;
--姓氏
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“缺少父项\u lastname1”
式中,NVL(修剪(父级_ln1),“”)=”
和负载年=v负载年
和机构=v_机构;
--lastname1太短
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“父项\u lastname1太短”
其中长度(修剪(父项_ln1))=1
和负载年=v负载年
和机构=v_机构;
--最大标签名称=60;包括三个空格
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||'父邮件名1超过60个字符'
其中,长度(nvl(修剪(父前缀1),“”)|
nvl(修剪(母材fn1),“”)nvl(修剪(母材mn1),“”)
nvl(阀内件(母级)ln1,'')>37
和负载年=v负载年
和机构=v_机构;
--前缀
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||'前缀1:'
||父前缀
其中,NVL(修剪(父前缀1),“”)=”
或(NVL(修剪(父前缀1),“”)
和父_前缀x1不在
(从gl_前缀中选择gl_prefixes.campprefixe)
和负载年=v负载年
和机构=v_机构);
--后缀
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“个人后缀1:”
||父\后缀\人员1
其中NVL(修剪(父项后缀为pers1),“”)
和父_后缀_pers1不在
(从gl_后缀中选择gl_后缀.campsuffix)
和负载年=v负载年
和机构=v_机构;
--足够的
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“职业1:”
||父后缀形式1
其中NVL(修剪(父项后缀形式),“”“
和父_后缀_prof1不在
(从gl_后缀中选择gl_后缀.campsuffix)
和负载年=v负载年
和机构=v_机构;
--比赛
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“比赛1:”
||竞赛1
其中NVL(饰件(座圈1),“”“
和赛车1不在(选择campcode
来自格卢赛马会
其中campuscode=v_机构)
和负载年=v负载年
和机构=v_机构;
--性
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||“性代码1:”
||性别1
其中NVL(修剪(sex1),“”)不在('M','F')中
和负载年=v负载年
和机构=v_机构;
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||'性别1和前缀1不匹配:'
||父前缀
|| ' '
||性别1
式中((sex1='M'
以及在('Mrs.,'Mrs.,'Miss.,'Miss.,'Ms.,',
"Ms"))
或(trim(sex1)='F'和trim(父前缀x1)在('Mr.,'Mr'))
和负载年=v负载年
和机构=v_机构;
--地址
更新um\u父项\u临时
设置注释=
(当“”然后“”其他注释时的大小写注释| |’
结束)
||'首选地址标记1:'
||预加地址1
||“
”
||'注意:还必须为首选地址设置未列出的标志'
其中修剪(pref_addr1)不在('H
create or replace PROCEDURE proc_checkparentdata (
v_institution IN CHAR DEFAULT NULL,
v_load_year IN CHAR DEFAULT NULL,
v_summary OUT VARCHAR2, /* DEFAULT ' '*/
v_continue OUT VARCHAR2, /* DEFAULT ' '*/
cv_1 OUT SYS_REFCURSOR)
AS
v_rowcount NUMBER (10, 0);
v_errorcount NUMBER (5, 0);
BEGIN
-- clear comment
UPDATE um_parent_temp
SET comments = ' '
WHERE load_year = v_load_year AND institution = v_institution;
-- clear status
UPDATE um_parent_temp
SET status = ' '
WHERE load_year = v_load_year AND institution = v_institution;
-- campus code
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Campus code: '
|| institution
WHERE institution NOT IN ('BC', 'CP', 'ES', 'FS', 'SU', 'TU', 'UC')
AND load_year = v_load_year
AND institution = v_institution;
/* parent 1 */
-- firstname
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent firstname1 is missing'
WHERE NVL (trim(parent_fn1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- lastname
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent_lastname1 is missing'
WHERE NVL (trim(parent_ln1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- lastname1 too short
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent_lastname1 is too short'
WHERE Length(trim(parent_ln1)) = 1
AND load_year = v_load_year
AND institution = v_institution;
-- maximum label name = 60; includes three spaces
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent mailname1 is over 60 characters'
WHERE lengthc (nvl(trim(parent_prefix1),'') ||
nvl(trim(parent_fn1),'') || nvl(trim(parent_mn1),'') ||
nvl(trim(parent_ln1),'')) > 37
AND load_year = v_load_year
AND institution = v_institution;
-- prefix
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Prefix1: '
|| parent_prefix1
WHERE NVL (trim(parent_prefix1), ' ') = ' '
OR (NVL (trim(parent_prefix1), ' ') <> ' '
AND parent_prefix1 NOT IN
(SELECT gl_prefixes.campprefix FROM gl_prefixes)
AND load_year = v_load_year
AND institution = v_institution);
-- suffixPers
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Personal suffix1: '
|| parent_suffix_pers1
WHERE NVL (trim(parent_suffix_pers1), ' ') <> ' '
AND parent_suffix_pers1 NOT IN
(SELECT gl_suffixes.campsuffix FROM gl_suffixes)
AND load_year = v_load_year
AND institution = v_institution;
-- suffixProf
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Profession suffix1: '
|| parent_suffix_prof1
WHERE NVL (trim(parent_suffix_prof1), ' ') <> ' '
AND parent_suffix_prof1 NOT IN
(SELECT gl_suffixes.campsuffix FROM gl_suffixes)
AND load_year = v_load_year
AND institution = v_institution;
-- race
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Race1: '
|| race1
WHERE NVL (trim(race1), ' ') <> ' '
AND race1 NOT IN (SELECT campcode
FROM gl_races
WHERE campuscode = v_institution)
AND load_year = v_load_year
AND institution = v_institution;
-- sex
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Sex code1: '
|| sex1
WHERE NVL (trim(sex1), ' ') NOT IN ('M', 'F')
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Mismatching gender1 and prefix1: '
|| parent_prefix1
|| ' <---> '
|| sex1
WHERE ( (sex1 = 'M'
AND trim(parent_prefix1) IN ('Mrs.', 'Mrs', 'Miss.', 'Miss', 'Ms.',
'Ms'))
OR (trim(sex1) = 'F' AND trim(parent_prefix1) IN ('Mr.', 'Mr')))
AND load_year = v_load_year
AND institution = v_institution;
-- address
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Preferred address flag1: '
|| pref_addr1
|| '<br>'
|| 'note: must also have unlisted flag set for preferred addr'
WHERE trim(pref_addr1) NOT IN ('H', 'B')
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home address1_1 is empty'
WHERE pref_addr1 = 'H'
AND NVL (trim(home_addr1_1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business address1 is empty'
WHERE pref_addr1 = 'B'
AND NVL (trim(busn_addr1_1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- city
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home city1 is empty'
WHERE NVL (trim(home_addr1_1), ' ') <> ' '
AND NVL (trim(home_city1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business city1 is empty'
WHERE NVL (trim(busn_addr1_1), ' ') <> ' '
AND NVL (trim(busn_city1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- state
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home state code1: '
|| home_state1
WHERE NVL (trim(home_addr1_1), ' ') <> ' '
AND trim(home_country1) IN ('US', 'USA', ' ')
AND trim(home_state1) NOT IN (SELECT tms_states.state_code FROM
tms_states)
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business state code1: '
|| busn_state1
WHERE NVL (trim(busn_addr1_1), ' ') <> ' '
AND trim (busn_country1) IN ('US', 'USA', ' ')
AND busn_state1 NOT IN (SELECT tms_states.state_code FROM tms_states)
AND load_year = v_load_year
AND institution = v_institution;
-- zip
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Invalid home zip code1: '
|| home_zip1
WHERE trim(home_country1) IN ('US', 'USA', ' ')
AND INSTR (home_zip1, '-') > 0
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Invalid business zip code1: '
|| busn_zip1
WHERE trim (busn_country1) IN ('US', 'USA', ' ')
AND INSTR (busn_zip1, '-') > 0
AND load_year = v_load_year
AND institution = v_institution;
-- country
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home country code1: '
|| home_country1
WHERE NVL (trim(home_country1), ' ') <> ' '
AND NVL (trim(home_country1), ' ') NOT IN (select campcountry from
gl_countries
WHERE gradloadcode = v_institution)
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business country code1: '
|| busn_country1
WHERE NVL (trim(busn_country1), ' ') <> ' '
AND busn_country1 NOT IN (select campcountry from gl_countries
WHERE gradloadcode = v_institution)
AND load_year = v_load_year
AND institution = v_institution;
-- unlisted flag
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Invalid home unlisted flag 1'
WHERE pref_addr1 = 'H'
AND home_unlisted_flag1 NOT IN ('N', 'Y')
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Invalid business unlisted flag 1'
WHERE pref_addr1 = 'B'
AND busn_unlisted_flag1 NOT IN ('N', 'Y')
AND load_year = v_load_year
AND institution = v_institution;
/* parent 2 */
-- firstname
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent firstname2 is missing'
WHERE NVL (trim(parent_fn2), ' ') = ' '
AND NVL (trim(parent_ln2), ' ') <> ' '
AND load_year = v_load_year
AND institution = v_institution;
-- lastname
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent lastname2 is missing'
WHERE NVL (trim(parent_ln2), ' ') = ' '
AND NVL (trim(parent_fn2), ' ') <> ' '
AND load_year = v_load_year
AND institution = v_institution;
-- lastname2 too short
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent_lastname2 is too short'
WHERE Length(trim(parent_ln2)) = 1
AND NVL (trim(parent_fn2), ' ') <> ' '
AND load_year = v_load_year
AND institution = v_institution;
-- maximum label name = 460; includes three spaces
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Parent mailname2 is over 60 characters'
WHERE NVL (trim(parent_fn2), ' ') <> ' '
AND lengthc (parent_prefix2 || parent_fn2 || parent_mn2 ||
parent_ln2) > 57
AND load_year = v_load_year
AND institution = v_institution;
-- prefix
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Prefix2: '
|| parent_prefix2
WHERE NVL (trim(parent_prefix2), ' ') <> ' '
AND parent_prefix2 NOT IN
(SELECT gl_prefixes.campprefix FROM gl_prefixes)
AND load_year = v_load_year
AND institution = v_institution;
-- suffixPers
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Personal suffix2: '
|| parent_suffix_pers2
WHERE NVL (trim(parent_suffix_pers2), ' ') <> ' '
AND parent_suffix_pers2 NOT IN
(SELECT gl_suffixes.campsuffix FROM gl_suffixes)
AND load_year = v_load_year
AND institution = v_institution;
-- suffixProf
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Profession suffix2: '
|| parent_suffix_prof2
WHERE NVL (trim(parent_suffix_prof2), ' ') <> ' '
AND parent_suffix_prof2 NOT IN
(SELECT gl_suffixes.campsuffix FROM gl_suffixes)
AND load_year = v_load_year
AND institution = v_institution;
-- race
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Race2: '
|| race2
WHERE NVL (trim(race2), ' ') <> ' '
AND race2 NOT IN (SELECT campcode
FROM gl_races
WHERE campuscode = v_institution)
AND load_year = v_load_year
AND institution = v_institution;
-- sex
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Sex code2: '
|| sex2
WHERE NVL (trim(parent_fn2), ' ') <> ' '
AND sex2 NOT IN ('M', 'F')
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Missmatching gender2 and prefix2: '
|| parent_prefix2
|| ' <---> '
|| sex2
WHERE ( (sex2 = 'M'
AND trim(parent_prefix2) IN ('Mrs.', 'Mrs', 'Miss.', 'Miss', 'Ms.',
'Ms'))
OR (sex2 = 'F' AND trim(parent_prefix2) IN ('Mr.', 'Mr')))
AND load_year = v_load_year
AND institution = v_institution;
-- address
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Preferred address flag2: '
|| pref_addr2
|| '<br>'
|| 'note: must also have unlisted flag set for preferred addr'
WHERE NVL (trim(parent_fn2), ' ') <> ' '
AND pref_addr2 NOT IN ('H', 'B')
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home address2_1 is empty'
WHERE NVL (trim(parent_fn2), ' ') <> ' '
AND pref_addr2 = 'H'
AND NVL (trim(home_addr2_1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business address2 is empty'
WHERE NVL (trim(parent_fn2), ' ') <> ' '
AND pref_addr2 = 'B'
AND NVL (trim(busn_addr2_1), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- city
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home city2 is empty'
WHERE NVL (trim(home_addr2_1), ' ') <> ' '
AND NVL (trim(home_city2), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Business city2 is empty'
WHERE NVL (trim(busn_addr2_1), ' ') <> ' '
AND NVL (trim(busn_city2), ' ') = ' '
AND load_year = v_load_year
AND institution = v_institution;
-- state
UPDATE um_parent_temp
SET comments =
(CASE comments WHEN ' ' THEN ' ' ELSE comments || '<br>' END)
|| 'Home state 2: '
|| home_state2
WHERE NVL (trim(home_addr2_1), ' ') <> ' '
AND trim(home_country2) IN ('US', 'USA', ' ')
AND trim(home_state2) NOT IN (SELECT tms_states.state_code FROM
tms_states)
AND load_year = v_load_year
AND institution = v_institution;
v_summary := '<b>Institution:</b> ' ||
v_institution ||
'<br><b>Load Code:</b> ' ||
v_load_year ||
'<br><b>Total records checked:</b> ' ||
TO_CHAR (v_rowcount, '99999') ||
'<br><b>Total records with errors:</b> ' ||
TO_CHAR (v_errorcount, '99999');