Substring Error
what am I doing wrong ? My code is below and so is the error,
blowing up on Substring
<cfquery name="qryGet_MMI_Data_1" datasource="MMI_db">
Select *
from tblMMI_Header,tblMMI_Items_1
where tblMMI_Header.service_req_no =
tblMMI_Items_1.service_req_no
and tblMMI_Header.hold_status_flag = 'No'
and substring(tblMMI_Header.move_coordinator,1,6) <>
'Vendor'
and tblMMI_Header.move_date between
#CreateODBCDate(session.start_date)# and
#CreateODBCDate(session.end_date)#
</cfquery>
Error Occurred While Processing Request
Error Diagnostic Information
ODBC Error Code = 37000 (Syntax error or access violation)
[Microsoft][ODBC Microsoft Access Driver] Undefined function
'substring' in expression.
SQL = "Select * from tblMMI_Header,tblMMI_Items_1 where
tblMMI_Header.service_req_no = tblMMI_Items_1.service_req_no and
tblMMI_Header.hold_status_flag = 'No' and
substring(tblMMI_Header.move_coordinator,1,6) <> 'Vendor' and
tblMMI_Header.move_date between {d '2006-05-20'} and {d
'2006-05-20'}"
Data Source = "MMI_DB"
The error occurred while processing an element with a general
identifier of (CFQUERY), occupying document position (142:1) to
(142:54) in the template file
D:\webserve\esscm\pages\logistics\estrans\cost_center_detail_report.cfm.
Date/Time: 05/18/06 15:03:08
Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1; .NET CLR 1.0.3705)
Remote Address: 147.16.33.158
HTTP Referer:
http://rww.sas.ray.com/esscm/pages/logistics/estrans/cost_center_detail_date_selection.cfm
Does access have a substring function that is named
substring? The error message suggests not. I don't use access so I
don't actually know.
Similar Messages
-
Substring error with ( or )
Hi, i'm trying to do a substring in a string.. using:
txt.replaceAll(":(", "SAD");but get an error
"Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unclosed group near index 2
:("or when i use:
txt.replaceAll(":(", "HAPPY");I get the error:
"Unmatched closing ')' near index 0 :)"thanks worked but got this other problem.. would do a new thread but will be taking up space so as its sought of related to this thread not sure if you can help... basically i've made it get a substring and then 2 consecutive replaceAll checks using :
public String getTxtMult(String str){
String txt = str;
int s = 0;
int e = 2;
for (int i = 0; i < txt.length(); i++) {
System.out.println("Comparing: " + txt.substring(s, e) + " with :)");
if (txt.substring(s, e).equals(":)")) {
txt = txt.replaceAll(":\\)", "HAPPY");
System.out.println("Comparing: " + txt.substring(s, e) + " with :(");
if (txt.substring(s, e).equals(":(")) {
txt = txt.replaceAll(":\\(", "SAD");
s = s+1;
e = e+1;
if (e == str.length()+1) {
break;
System.out.println("Completed: " + txt);
return txt;
} Now what I noticed is lets say i put a string "Hi :) :(" it will put out: "Hi HAPPY :(" when it should put out "Hi HAPPY SAD" but wheni put anything after the last substring then it brings it up.. so if i put "Hi :) :( sds" it will work.. ? -
I'm trying to parse some log. I'read it by BufferedReader and readline, then I'm trying to divide it into several others strings using substring(int, int).
This is example of logfile
2004-11-16 00:11:32 10.16.30.101 - 10.16.30.34 80 GET /wutrack.bin V=1&U=a854555c83f00542b1e17d22f711859f&C=iu&A=n&I=&D=&P=5.0.893.2.0.1.0&L=en-US&S=s&E=00000000&M=&X=041116001132877 200 Industry+Update+Control
It's one line. For some reasons I get error: string index out of bound when I use endIndex grater than 13.
I would be greatfull for any clueshttp://forums.java.sun.com/thread.jsp?forum=54&thread=571691&tstart=0&trange=15
http://forums.java.sun.com/thread.jsp?forum=54&thread=571692&tstart=0&trange=15
post your code -
Hello again all! I'm still new to this, and having a problem using strings. The code is designed to extract price from a string. Here's what I have so far:
// calculate total price
private void calculateJButtonActionPerformed( ActionEvent event )
double total = 0.00;
String price;
for ( int counter = 0; counter < userArrayList.size();
counter++ )
// convert current item to string
price = ( String ) userArrayList.get( counter );
double priceBegin = userArrayList.indexOf( "$" );
// store substring
String priceText = listItem.substring(
priceBegin );
double priceEnd = Double.parseDouble( priceText );
total += priceEnd;
The problem I'm having is storing the substring. The error I get now is:
C:\SimplyJava\SupplyCalculator\SupplyCalculator.java:255: cannot resolve symbol
symbol : variable listItem
location: class SupplyCalculator
String priceText = listItem.substring(
Does anyone know what I might be doing wrong?
Thanks for any help you can give!This looks like a compilation problem - listItem variable doesn't exist. I guess that the code should be:
String priceText = userArrayList.substring(priceBegin ); -
the base language is english and i've installed german and spanish. the german works fine; translates everything correctly and brings up all the portlets. however, when i switch to spanish, the main portlet on my page gives an ORA-01403 "no data found" error. there were no errors in the logs during the spanish installation and all the other portlets show up correctly, as do the icons. can't find anything else to indicate what is wrong. any ideas?
also, how can i uninstall a language?
thanks in advance. please email me at [email protected]
haroonThanks for your reply.No in our case we are not using ABOUT query in the markup query parameter.
Our code block is exactly as follows :
===========================================
DECLARE
restab CLOB;
BEGIN
restab := NULL;
ctxsys.ctx_doc.markup('HR.IRC_DOCUMENTS_CTX','AADUWRAATAAApt4AAC','java',restab,FALSE,'HTML_DEFAULT','IRC_MARKUP_STARTTAG','IRC_MARKUP_ENDTAG',NULL,NULL);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SubStr('Error '||TO_CHAR(SQLCODE)||': '||SQLERRM, 1, 255));
RAISE;
END;
===========================================
Thanks. -
Hello All.
I am using Apex 3.0.1.x. I've uploaded an XML file into an XMLTYPE column in a table and am now trying to display this XML data in an Apex report region.
I saw a beautiful example of doing this in Denes Kubicek's wonderful demo app 31517, page 90. Here's the link to this page:
http://htmldb.oracle.com/pls/otn/f?p=31517:90
I copied the procedure code he uses to display the XML into a package. Here's the code I'm using:
<pre>
PROCEDURE DISPLAY_XML (P_ID IN INTEGER)
AS
V_PROC VARCHAR2(100);
V_ERRMSG VARCHAR2(300);
V_MIME VARCHAR2 (48);
V_LENGTH NUMBER;
V_FILE_NAME VARCHAR2 (2000);
V_LOB_LOC BLOB;
XML_TO_BLOB_ERROR EXCEPTION;
BEGIN
V_PROC := 'ONLINE_MODEL_PKG.DISPLAY_XML_DEVICES';
V_ERRMSG := NULL;
SELECT DECODE(V('APP_USER'),NULL,'N','Y')
INTO V_HTML_FLAG
FROM DUAL;
BEGIN
SELECT X.MIME_TYPE,
PROC_FUNC_PACK.CLOB2BLOB(X.DEVICE_XML.GETCLOBVAL()),
X.DEVICE_FILENAME
INTO V_MIME,
V_LOB_LOC,
V_FILE_NAME
FROM XML_DOCS X
WHERE X.ID = P_ID;
EXCEPTION
WHEN OTHERS THEN
V_ERRMSG := SUBSTR('ERROR ('||V_PROC||'): DURING DISPLAY OF XML DATA: '||SQLERRM, 1, 300);
RAISE XML_TO_BLOB_ERROR;
END;
V_LENGTH := DBMS_LOB.GETLENGTH (V_LOB_LOC);
-- set up HTTP header
-- use an NVL around the mime type and
-- if it is a null set it to application/octect
-- application/octect may launch a download window from windows
OWA_UTIL.MIME_HEADER (NVL (V_MIME, 'application/octet'), FALSE);
-- SET THE SIZE SO THE BROWSER KNOWS HOW MUCH TO DOWNLOAD
HTP.P ('Content-length: ' || V_LENGTH);
-- THE FILENAME WILL BE USED BY THE BROWSER IF THE USERS DOES A SAVE AS
HTP.P ( 'Content-Disposition: filename="'
|| V_FILE_NAME
|| '"'
-- CLOSE THE HEADERS
OWA_UTIL.HTTP_HEADER_CLOSE;
-- DOWNLOAD THE BLOB
WPG_DOCLOAD.DOWNLOAD_FILE (V_LOB_LOC);
EXCEPTION
WHEN XML_TO_BLOB_ERROR THEN
V_ERRMSG := PROC_FUNC_PACK.FORMAT_MSG(V_ERRMSG, V_HTML_FLAG);
RAISE_APPLICATION_ERROR(-20010, V_ERRMSG);
WHEN OTHERS THEN
V_ERRMSG := SUBSTR('ERROR ('||V_PROC||'): '||SQLERRM, 1, 300);
V_ERRMSG := PROC_FUNC_PACK.FORMAT_MSG(V_ERRMSG, V_HTML_FLAG);
RAISE_APPLICATION_ERROR(-20020, V_ERRMSG);
END DISPLAY_XML_DEVICES;
</pre>
I then invoke this packaged procedure in an iframe, just like what Denes is doing. I put the following code in my report region source field:
<pre>
DECLARE
v VARCHAR2 (500);
BEGIN
v :=
'SELECT '
|| '''<iframe src="#OWNER#.ONLINE_MODEL_PKG.DISPLAY_XML?p_id='
|| :p53_id
|| '"'
|| ' height="800" width="950"></iframe>'''
|| ' document_display'
|| ' FROM DUAL';
RETURN v;
END;
</pre>
When I run the report in Intenet Explorer (version 6.x), I get a strange security warning popup asking if I want to display unsecure items. When I click "Yes", the report region shows up with a "Could not find web page" error 404 inside the report region.
I then tried running the app in Fire Fox (version 2.0.0.15). This time I do not get any security warning, but the report region shows up with the message "Procedure Doesn't Exist".
Another page in my app calling other procedures in my package, and so, I know that Apex is "seeing" the package.
Does anyone know why I'm seeing these strange things? And, is there, perhaps, another way to display an XML document in an Apex page?
Thank you.
ElieHi Arthur,
I assume you are using EP6.0, below SP3.
The XML Forms can be displayed using standard SAP layouts only. There is a special type of servlet. This alongwith the CSS is applied when you click to display the "Show" form.
As far as I know, there is no other way to display as you want to. You can probably get more help by specifying the exact scenario.
Hope this helps you.
Regards,
Sagar -
Exception Handling Concept Gone Bad!!
Okay, this is by far the most embarrassing hack of code I've done thus far . . . but it works. I am trying to run a select where if there is no data or null returned, place it into the value "v_pidm', and then let the action occur. Simple enough, right? Wrong! A select that return no data which is using a 'into' function is an exception . . . "no data found." Oracle sends this to the exception block as it should. Okay, I don't want to stop and start my script a million times, there I added an sub Begin/End with an exception to handle the say error and perform an insert. I know you shouldn't use an exception state for inserts another than capturing errors . . . you know bad practices and all. Any ideas as how to better handle the select statement that should regularly return no data? I was thinking about some along the line of nvl(v_pidm, 0) or something, but I am getting errors.
set serveroutput ON SIZE 1000000
set heading off
set feedback off
set trimspool off
set echo off
set pagesize 0
set termout on
Declare
error varchar(255);
v_pidm number(8);
Begin
Begin
select distinct saraatt_pidm
into
v_pidm
from saraatt, saradap
where saraatt_appl_no = SARADAP_APPL_NO
and saraatt_term_code = SARADAP_TERM_CODE_ENTRY
and saraatt_pidm = 4;
Exception
when too_many_rows then
error := SQLERRM;
DBMS_OUTPUT.PUT_LINE(' %% Oracle Error! %% The select statement returned more than two rows ');
when no_data_found then
error := SQLERRM;
DBMS_OUTPUT.PUT_LINE('Select Returned No Data . . . Therefore Insert new record for ' || v_pidm );
v_pidm := -999;
when others then
error := SQLERRM;
DBMS_OUTPUT.PUT_LINE(' %% Oracle Error! %% An Error Occured ' || substr(error,5,20));
End;
DBMS_OUTPUT.PUT_LINE('Pidm: ' || v_pidm);
End;it would be better to just let the exception get propagated up so that you can see the full error stack.
Agrees fully with Justin
@Pr****
It took me a while as well, but in the end the best thing to do is avoid a WHEN OTHERS at all cost.
Once you resort to it, you're actually hiding some flaw(s), it might be design (it usually is)....or whatever, and the database covers up for t, and gets the blame.
And it's a pet-peeve of Tom Kyte for quite a while, and he wrote very good articles on it, do some readng on them:
http://google.com/search?q=site%3Atkyte.blogspot.com+%22when+others%22
Okay, I don't want to stop and start my script a million times, there I added an sub Begin/End with an exception to handle the say error and perform an insertYour example also doesn't seem to show the complete picture then?
I see no INSERT statement?
You have hidden your complete block structure, which makes it hard to guess what's going on/help you.
Perhaps you've nested your example in real life in another block, having it's own exception handler and so on...
I am getting errors.If you're getting errors and want some volunteers to help, then why not just post the full error message as well?
And your database version (the result of: select * from v$version; ) -
Is there any restriction to use ora:getFaultAsString() ??
Hi All,
I am using Jdev and SOA 11.1.1.2
I have a process and in that I am using a transforation.
I have tested below scenarios:
1) We have a dateconversion function, and i passed in correct value to that function so it got faulted and throws subLanguage Exception.
2)I have given wrong DVM name, so again it got faulted and throws subLanguage Exception.
3)I defined an XSL variable and used that in another template without passing, so it got faulted and throws subLanguage Exception.
4)I used a substring function without giving starting and ending indexes..so it got faulted and throws subLanguage Exception.
I have a catchAll and in that i am sending notification and in that notification i am using conact('CustomInfo',ora:getFaultAsString())
I found that except in 4th scenario in all scenarios ora:getFaultAsString() is returning null .(Even for 1,2,3, scenarios it is giving javax.xml.transform.TransformerException and for 4th scenario itis giving Fatal Error)
I am giving errors returned below
SubString Error(Successful)
<bpelFault>
<faultType>
<message>0</message>
</faultType>
<subLanguageExecutionFault>
<part name="summary">
<summary>XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is
ora:processXSLT('xsl/TransformSiebelOrderABMToTransportationOrder.xsl',bpws:getVariableData('receiveSiebelOrderABM_Consume_Message_InputVariable','body')).
The XPath expression failed to execute; the reason was: XML-22900: (Fatal Error) An internal error condition occurred..
Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
</summary>
</part>
<part name="code">
<code>XPathExecutionError</code>
</part>
</subLanguageExecutionFault>
</bpelFault>
DVM Error
<bpelFault>
<faultType>
<message>0</message>
</faultType>
<subLanguageExecutionFault>
<part name="summary">
<summary>XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is
ora:processXSLT('xsl/TransformSiebelOrderABMToTransportationOrder.xsl',bpws:getVariableData('receiveSiebelOrderABM_Consume_Message_InputVariable','body')).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: <Line 441,
Column 233>: XML-22044: (Error) Extension function error: Error invoking 'lookupValue':'oracle.tip.dvm.exception.DVMValidationException:
Unable to locate DVM "oramds:/deployed-composites/ZDVM_STOP_TYPE_rev1.1/STOP_TYPE.dvm"
The Exception is "MDS-00013: no metadata found for metadata object "/deployed-composites/ZDVM_STOP_TYPE_rev1.1/STOP_TYPE.dvm""
Please ensure the DVM exists at the location specified.'.
Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
</summary>
</part>
<part name="code">
<code>XPathExecutionError</code>
</part>
</subLanguageExecutionFault>
</bpelFault>
Date Format Error
<bpelFault>
<faultType>
<message>0</message>
</faultType>
<subLanguageExecutionFault>
<part name="summary">
<summary>XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is
ora:processXSLT('xsl/TransformSiebelOrderABMToTransportationOrder.xsl',bpws:getVariableData('receiveSiebelOrderABM_Consume_Message_InputVariable','body')).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: <Line 135,
Column 196>: XML-22044: (Error) Extension function error: Error invoking 'convertFormattedDttmToXSDDttm':'java.text.ParseException:
Unparseable date: "10/17/201114:52:25"'.
Check the detailed root cause described in the exception message text and verify that the XPath query is correct. </summary>
</part>
<part name="code">
<code>XPathExecutionError</code>
</part>
</subLanguageExecutionFault>
</bpelFault>
When a XSL variable is out of scope
<bpelFault>
<faultType>
<message>0</message>
</faultType>
<subLanguageExecutionFault>
<part name="summary">
<summary>XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is
ora:processXSLT('xsl/TransformSiebelOrderABMToTransportationOrder.xsl',bpws:getVariableData('receiveSiebelOrderABM_Consume_Message_InputVariable','body')).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException:
<Line 52, Column 50>: XML-22031: (Error) Variable not defined: 'Param'..
Check the detailed root cause described in the exception message text and verify that the XPath query is correct. </summary>
</part>
<part name="code">
<code>XPathExecutionError</code>
</part>
</subLanguageExecutionFault>
</bpelFault>Is there any restriction to use ora:getFaultAsString()
Please guide me
Regards
PavanKumar.MHi Pavan ,
We frequently observe the following error in our logs:
<Feb 11, 2011 11:12:50 AM CET> <Error> <oracle.soa.bpel.engine.xml> <BEA-000000> <BPEL1AssignWMP
ORABPEL-09500
XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is ora:processXSLT('xsl/Xform_CustomerPartyListABMReqMsg_to_CustomerPartyEBMReqMsg.xsl',bpws:getVariableData('SyncCustomerPartyListReqMsg','SyncCustomerPartyList'),bpws:getVariableData('params')).
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: <Line 15, Column 98>: XML-22031: (Error) Variable not defined: 'endIndex'..
Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
Can you please share ..how you resolved it?
Regards,
Shagufta
Edited by: 830719 on Feb 11, 2011 2:34 AM -
Can anybody tell me the probme?
In fnd_log_messages i get error as follows:
per.plsql.hr_dflex_utility.ins_or_upd_descflex_attribs.30
per.plsql.hr_dflex_utility.ins_or_upd_descflex_attribs.40
per.plsql.hr_dflex_utility.ins_or_upd_descflex_attribs.40
per.plsql.--====== FLEX VALUES =====--.69
per.plsql.Error segment:7.970
per.plsql.1...NULL VALUE.980
i know this is occur by
if FND_FLEX_DESCVAL.validate_desccols
(appl_short_name => p_appl_short_name
,desc_flex_name => p_descflex_name
--5132936 start here
,validation_date=>l_effective_date
--5132936 ends here
,VALUES_OR_IDS => 'I'
then
-- AOL DF validation succeeds - do nothing
hr_utility.set_location(l_proc, 50);
-- Bug fix 1218702.Debug check added to improve performance.
if g_debug then
FOR i IN 1..20 loop
hr_utility.set_location(substr(to_char(i)||'...'
||nvl(FND_FLEX_DESCVAL.segment_column_name(i),'NULL VALUE'),1,70),980);
END LOOP;
end if;
else
-- Bug fix 1218702.Debug check added to improve performance.
if g_debug then
hr_utility.set_location(substr('--====== FLEX VALUES =====--',1,70),69);
hr_utility.set_location(substr('Error segment:'
||nvl(to_char(fnd_flex_descval.error_segment),'CONTEXT'),1,70),970);
FOR i IN 1..20 loop
hr_utility.set_location(substr(to_char(i)||'...'
||nvl(FND_FLEX_DESCVAL.segment_column_name(i),'NULL VALUE'),1,70),980);
END LOOP;
end if;
can anybody tell me that segment7 is wrong setup or what 's wrong?Ming,
tell us what is navigaiton, what you are looking to find.
Where you are using segment7, which DFF you are using?
Thanks -
hi all
i have a procedure in this proc we are deleting and after that we are inserting
because of this performance is slow how to avoid this
PROCEDURE INSERT_HOVERSEQ IS
BEGIN
DELETE FROM HOVERSEQ
WHERE
HOVERSEQ_ENTITY_NUM=W_ENTITY_NUM
AND HOVERSEQ_BRN_CODE=V_ACNTS_BRN_CODE
AND HOVERSEQ_YEAR=W_HOVER_YEAR;
INSERT INTO HOVERSEQ
(HOVERSEQ_ENTITY_NUM,
HOVERSEQ_BRN_CODE,
HOVERSEQ_YEAR,
HOVERSEQ_LAST_SEQ_NUM
VALUES
(W_ENTITY_NUM,
V_ACNTS_BRN_CODE,
W_HOVER_YEAR,
W_COUNTi am providing the complete code please help me in the fallowing code where we can see the performance issues
CREATE OR REPLACE PACKAGE PKG_ATMSERCHG_REC AS
--AUTHOR : SATHISH KUMAR.S
--PURPOSE : ATM charges
--DATE : 12-OCT-2011
--MODIFICATION HISTORY
---DATE---------GIVEN BY----------CHANGED BY--------Remarks---------------------------------------------------------------------------------------------------------------
--26-DEC-2011 MR.T.Ravisankar S.Sathish kumar---HOVCHG hovertype code not available in hovertype so it changed as 3 (manual hovering which is available in hovertype)
--28-JAN-2012 MR.T.Ravisankar S.Sathish kumar---UPDATE THE ATMCHGCTL TABLE AT THE TIME OF HOVERING MARKED.
--10-feb-2012 KESAVAN CHANGED FOR Performance Tuning
--16-FEB-2012 MR T.Ravisankar SATHISSHAN Changes regards to extra recovery of atm charges
PROCEDURE SP_ATMSERCHG_REC(V_ENTITY_NUM IN NUMBER ,
P_BRN_CODE IN NUMBER DEFAULT 0,
P_INTERNAL_NUM IN NUMBER DEFAULT 0,
P_PRODCODE IN NUMBER DEFAULT 0);
END PKG_ATMSERCHG_REC;
CREATE OR REPLACE PACKAGE BODY PKG_ATMSERCHG_REC AS
W_CBD DATE;
W_USER_ID VARCHAR2(8);
W_BRN_CODE NUMBER(6);
W_ERR_MSG VARCHAR2(800);
W_ERROR_MSG VARCHAR2(800);
W_CBD_TIME VARCHAR2(25);
E_USEREXCEP EXCEPTION;
W_PROD_CODE NUMBER(4);
V_INTERNAL_ACNUM NUMBER(14);
W_ENTITY_NUM NUMBER;
L_BRN_CODE NUMBER(6);
W_SQL VARCHAR2(1800);
V_ACNTS_PROD_CODE NUMBER(4,0);
V_ACNTS_AC_TYPE VARCHAR2(5 BYTE);
V_ACNTS_CURR_CODE VARCHAR2(3 BYTE);
V_ACNTS_ATM_OPERN CHAR(1 BYTE);
V_PRODGCP_ATM_CHG_FREQ CHAR(1 BYTE);
V_PRODGCP_ATM_CHG VARCHAR2(6 BYTE);
V_CHG_INCOME_GL VARCHAR2(15 BYTE);
W_TOT_AMT NUMBER(18,3);
AC_AVLBAL NUMBER(18,3);
V_DUMMY NUMBER;
W_CHG_AMT NUMBER(18,3);
W_OPENING_CHG VARCHAR2(6);
W_CHARGE_CURR_CODE VARCHAR2(3);
W_SERVICE_AMOUNT NUMBER(18,3);
W_PROC_NAME VARCHAR2(40);
W_YR_BEG_DATE DATE DEFAULT NULL;
W_EOD_MQHY_FLG CHAR(1);
W_IGNORE CHAR(1);
V_ACNTS_OPENING_DATE DATE;
V_ACNTS_BRN_CODE NUMBER(6);
W_PREV_BRN_CODE NUMBER(6);
V_PREV_BRN_CODE NUMBER(6);
W_LAST_POSTED_DATE DATE;
W_CHG_FROM_DATE DATE;
W_CHG_FROM_DATE1 DATE;
W_NOM NUMBER(6);
W_NOM1 NUMBER(6);
W_FACTOR NUMBER(6);
W_CHAR_QHY CHAR(1);
W_NOF_QHY NUMBER(6);
W_TEMP_DATE DATE;
W_CHG_ON_AMT NUMBER(18,3);
W_TEMP_SERIAL NUMBER(8);
W_IND NUMBER(7) DEFAULT 0;
INDX NUMBER(7) DEFAULT 0;
SRC_TABLE VARCHAR2(30);
SRC_KEY VARCHAR2(100);
W_ERR_CODE VARCHAR2(6) DEFAULT '';
W_BATCH_NUMBER NUMBER(7) DEFAULT 0;
W_ADV_IND NUMBER(5) DEFAULT 0;
W_HOVER_YEAR NUMBER(4);
W_COUNT NUMBER(6) DEFAULT 0;
W_DESC_DATE DATE;
TYPE TMP_REC IS RECORD
W_ACNTS_PROD_CODE NUMBER(4,0),
W_ACNTS_AC_TYPE VARCHAR2(5 BYTE),
W_ACNTS_CURR_CODE VARCHAR2(3 BYTE),
W_ACNTS_ATM_OPERN CHAR(1 BYTE),
W_ACNTS_INTERNAL_ACNUM NUMBER(14,0),
W_ACNTS_OPENING_DATE DATE,
W_ACNTS_BRN_CODE NUMBER(6),
--kesavan-dar-10-02-2012-BEG
--added 2 fields for PRODGENCP CHARGE CODE , FREQ
W_CHG_CODE VARCHAR2(6),
W_FREQ CHAR(1)
--kesavan-dar-10-02-2012-END
TYPE TMP1_REC IS TABLE OF TMP_REC INDEX BY PLS_INTEGER;
ACNTS_REC TMP1_REC;
PROCEDURE SP_PROCESS_ACNTS_DETAILS ; --KESAVAN
PROCEDURE INIT_PARA IS
BEGIN
W_ERR_MSG := '';
V_DUMMY := 0;
W_PROC_NAME := PKG_EODSOD_FLAGS.PV_PROCESS_NAME;
W_TEMP_SERIAL := PKG_PB_GLOBAL.SP_GET_REPORT_SL(PKG_ENTITY.FN_GET_ENTITY_CODE);
END INIT_PARA;
PROCEDURE READ_PRODGENCP(W_ERROR_MSG OUT VARCHAR2) IS
BEGIN
--KESAVAN-DAR-10-02-2012-REMOVED
-- HANDLED IN MAIN QUERY
/* SELECT PRODGCP_ATM_CHG,PRODGCP_ATM_CHG_FREQ
INTO V_PRODGCP_ATM_CHG,V_PRODGCP_ATM_CHG_FREQ
FROM PRODGENCP
WHERE PRODGCP_PROD_CODE = V_ACNTS_PROD_CODE
AND PRODGCP_AC_TYPE=V_ACNTS_AC_TYPE
AND PRODGCP_CURR_CODE=V_ACNTS_CURR_CODE
AND PRODGCP_CUST_CATG_CODE=' ';*/
--KESAVAN-DAR-10-02-2012-END
<<CALL_CHG_GL>>
BEGIN
IF V_PRODGCP_ATM_CHG IS NOT NULL THEN
SELECT CHGCD_CR_INCOME_HEAD
INTO V_CHG_INCOME_GL
FROM CHGCD
WHERE CHGCD_CHARGE_CODE = V_PRODGCP_ATM_CHG;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
W_ERR_MSG := 'CHGCD DETAILS NOT FOUND';
RAISE E_USEREXCEP;
END CALL_CHG_GL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
W_ERR_MSG := '';
END READ_PRODGENCP;
PROCEDURE SP_GET_BAL IS
BEGIN
GET_ASON_ACBAL(W_ENTITY_NUM,V_INTERNAL_ACNUM,
V_ACNTS_CURR_CODE,
W_CBD,
W_CBD,
AC_AVLBAL,
V_DUMMY,
W_ERR_MSG);
IF TRIM(W_ERR_MSG) IS NOT NULL THEN
RAISE E_USEREXCEP;
END IF;
END SP_GET_BAL;
PROCEDURE SP_GET_CHARGES IS
BEGIN
PKG_CHARGES.SP_GET_CHARGES(W_ENTITY_NUM,V_INTERNAL_ACNUM,
V_ACNTS_CURR_CODE,
0,
V_PRODGCP_ATM_CHG,
'N',
W_CHARGE_CURR_CODE,
W_CHG_AMT,
W_SERVICE_AMOUNT,
V_DUMMY,
V_DUMMY,
V_DUMMY,
W_ERR_MSG);
IF TRIM(W_ERR_MSG) IS NOT NULL THEN
RAISE E_USEREXCEP;
END IF;
END SP_GET_CHARGES;
PROCEDURE SP_GET_LAST_POSTED_DATE IS
BEGIN
SELECT MAX(ATMCHGCTL_APPLIED_UPTO_DATE)
INTO W_LAST_POSTED_DATE
FROM ATMCHGCTL
WHERE ATMCHGCTL_ENTITY_NUM = W_ENTITY_NUM
AND ATMCHGCTL_BRN_CODE = V_ACNTS_BRN_CODE
AND ATMCHGCTL_INTERNAL_ACNUM = V_INTERNAL_ACNUM;
END SP_GET_LAST_POSTED_DATE;
PROCEDURE SP_GET_QHY IS
W_EXIT CHAR(1) DEFAULT '0';
W_MONTHS NUMBER(2) DEFAULT 0;
BEGIN
-- W_EXIT := '0';
-- W_MONTHS := 0;
IF W_CHAR_QHY = 'Q' THEN
W_MONTHS := 3;
ELSIF W_CHAR_QHY = 'H' THEN
W_MONTHS := 6;
ELSIF W_CHAR_QHY = 'Y' THEN
W_MONTHS := 12;
ELSIF W_CHAR_QHY = 'A' THEN
W_MONTHS := 12;
ELSE
W_MONTHS := 1;
END IF;
WHILE (W_EXIT = '0') LOOP
IF W_CHAR_QHY <> 'A' THEN
W_TEMP_DATE := PKG_PB_GLOBAL.SP_FORM_START_DATE(W_ENTITY_NUM, W_TEMP_DATE,
W_CHAR_QHY);
W_TEMP_DATE := ADD_MONTHS(W_TEMP_DATE,3);
W_TEMP_DATE := ADD_MONTHS(W_TEMP_DATE,W_MONTHS);
ELSE
W_TEMP_DATE := ADD_MONTHS(W_TEMP_DATE,W_MONTHS);
END IF;
W_TEMP_DATE := W_TEMP_DATE - 1;
IF W_TEMP_DATE <= W_CBD THEN
W_NOF_QHY := W_NOF_QHY + 1;
END IF;
IF W_TEMP_DATE >= W_CBD THEN
W_EXIT := '1';
ELSE
W_TEMP_DATE := W_TEMP_DATE + 1;
END IF;
END LOOP;
END SP_GET_QHY;
PROCEDURE SP_GET_PERIOD IS
BEGIN
W_NOM := MONTHS_BETWEEN(W_CHG_FROM_DATE,W_CBD);
IF W_NOM = 0 THEN
W_NOM :=1;
END IF;
W_TEMP_DATE := W_CHG_FROM_DATE;
IF V_PRODGCP_ATM_CHG_FREQ = 'M' THEN
W_NOM1 :=MONTHS_BETWEEN(W_CBD,W_CHG_FROM_DATE);
IF W_NOM1 = 0 THEN
W_NOM1 :=1;
END IF;
W_NOM := FN_ROUNDOFF(W_ENTITY_NUM,W_NOM1,'L',1);
W_FACTOR := W_NOM;
ELSIF V_PRODGCP_ATM_CHG_FREQ = 'Q' THEN
W_CHAR_QHY := 'Q';
W_FACTOR := 3;
ELSIF V_PRODGCP_ATM_CHG_FREQ = 'H' THEN
W_CHAR_QHY := 'H';
W_FACTOR := 6;
ELSIF V_PRODGCP_ATM_CHG_FREQ = 'Y' THEN
W_CHAR_QHY := 'Y';
W_FACTOR := 12;
ELSIF V_PRODGCP_ATM_CHG_FREQ = 'A' THEN
W_CHAR_QHY := 'A';
W_FACTOR := 12;
END IF;
IF V_PRODGCP_ATM_CHG_FREQ = 'A' THEN
W_TEMP_DATE := W_CHG_FROM_DATE1;
END IF;
IF V_PRODGCP_ATM_CHG_FREQ <> 'M' THEN
W_NOF_QHY := 0;
SP_GET_QHY;
W_FACTOR := W_FACTOR+W_NOF_QHY;
END IF;
END SP_GET_PERIOD;
PROCEDURE SP_READ_ACNTS_DETAILS IS
--KESAVAN-31-01-2012-ADDED
TYPE RC IS REF CURSOR;
V_REF_CURSOR RC; --KESAVAN
BEGIN
--KESAVAN-DAR-10-02-2012-BEG
-- CHANGES IN VALIDATION AND ALSO ADDED TWO FIELDS
/*W_SQL := 'SELECT ACNTS_PROD_CODE,ACNTS_AC_TYPE,ACNTS_CURR_CODE,ACNTS_ATM_OPERN,
ACNTS_INTERNAL_ACNUM,ACNTS_OPENING_DATE,ACNTS_BRN_CODE FROM ACNTS
WHERE ACNTS_ATM_OPERN= 1 AND ACNTS_ENTITY_NUM='||W_ENTITY_NUM ;*/
W_SQL := 'SELECT ACNTS_PROD_CODE,ACNTS_AC_TYPE,ACNTS_CURR_CODE,ACNTS_ATM_OPERN,
ACNTS_INTERNAL_ACNUM,ACNTS_OPENING_DATE,ACNTS_BRN_CODE, PRODGCP_ATM_CHG,PRODGCP_ATM_CHG_FREQ
FROM ACNTS, PRODGENCP
WHERE ACNTS_ATM_OPERN= 1 AND ACNTS_ENTITY_NUM='||W_ENTITY_NUM || ' AND
PRODGCP_PROD_CODE =ACNTS_PROD_CODE AND PRODGCP_AC_TYPE= ACNTS_AC_TYPE AND PRODGCP_CURR_CODE=ACNTS_CURR_CODE
AND PRODGCP_ATM_CHG IS NOT NULL ' ;
--KESAVAN-DAR-10-02-2012-END
IF (W_BRN_CODE > 0) THEN
W_SQL := W_SQL || ' AND ACNTS_BRN_CODE = ' || W_BRN_CODE;
END IF;
IF (V_INTERNAL_ACNUM > 0) THEN
W_SQL := W_SQL || ' AND ACNTS_INTERNAL_ACNUM = ' || V_INTERNAL_ACNUM;
END IF;
W_SQL := W_SQL || ' AND ACNTS_CLOSURE_DATE IS NULL ORDER BY ACNTS_BRN_CODE';
--KESAVAN-30-JAN-2012
/*EXECUTE IMMEDIATE W_SQL
BULK COLLECT INTO ACNTS_REC;*/
OPEN V_REF_CURSOR FOR W_SQL ;
LOOP
FETCH V_REF_CURSOR BULK COLLECT INTO ACNTS_REC LIMIT 5000;
SP_PROCESS_ACNTS_DETAILS; -- KESAVAN
--DBMS_OUTPUT.PUT_LINE ('BRANCH CODE : '|| W_BRN_CODE ) ;
EXIT WHEN V_REF_CURSOR%NOTFOUND;
END LOOP;
CLOSE V_REF_CURSOR;
--KESAVAN-30-JAN-2012 END
END SP_READ_ACNTS_DETAILS;
PROCEDURE INSERT_ATMCHGCTL IS
BEGIN
INSERT INTO ATMCHGCTL
(ATMCHGCTL_ENTITY_NUM,
ATMCHGCTL_BRN_CODE,
ATMCHGCTL_INTERNAL_ACNUM,
ATMCHGCTL_APPLIED_UPTO_DATE,
ATMCHGDTL_PROC_ON,
ATMCHGCTL_PROC_BY,
POST_TRAN_BRN,
POST_TRAN_DATE,
POST_TRAN_BATCH_NUM)
VALUES
(W_ENTITY_NUM,
V_ACNTS_BRN_CODE,
V_INTERNAL_ACNUM,
W_CBD,
W_CBD,
PKG_EODSOD_FLAGS.PV_USER_ID,
V_ACNTS_BRN_CODE,
W_CBD,
W_BATCH_NUMBER);
END INSERT_ATMCHGCTL;
PROCEDURE SET_CREDIT_LEG IS
BEGIN
IF W_CHG_AMT > 0 THEN
W_IND := W_IND + 1;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_ACING_BRN_CODE := V_ACNTS_BRN_CODE;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_DB_CR_FLG := 'C';
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_INTERNAL_ACNUM := 0;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_GLACC_CODE := V_CHG_INCOME_GL;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_CHARGE_CODE := V_PRODGCP_ATM_CHG;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_CURR_CODE := V_ACNTS_CURR_CODE;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_AMOUNT := W_CHG_AMT;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_NARR_DTL1 := 'ATM CHARGES FOR :'||TO_CHAR(W_CBD,'MON');
INDX := W_IND;
END IF;
END SET_CREDIT_LEG;
PROCEDURE SET_DEBIT_LEG IS
BEGIN
W_IND := W_IND + 1;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_DB_CR_FLG := 'D';
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_INTERNAL_ACNUM := V_INTERNAL_ACNUM;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_TYPE_OF_TRAN := '1';
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_CHARGE_CODE := V_PRODGCP_ATM_CHG;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_CURR_CODE := V_ACNTS_CURR_CODE;
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_AMOUNT := W_CHG_AMT;
--PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_AMT_BRKUP := '1';
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_NARR_DTL1 := 'ATM CHARGES FOR THE PERIOD';
--SATHISHAN 15FEB2012 BEG
/* IF W_CHAR_QHY <> 'A' THEN
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_NARR_DTL2 := TO_CHAR(W_CHG_FROM_DATE,
'DD-MON-YYYY') ||
' TO ' ||
TO_CHAR(W_CBD,
'DD-MON-YYYY');
ELSE*/
--SATHISHAN 15FEB2012 END
PKG_AUTOPOST.PV_TRAN_REC(W_IND).TRAN_NARR_DTL2 := TO_CHAR(W_CHG_FROM_DATE,
'DD-MON-YYYY') ||
' TO ' ||
TO_CHAR(W_CBD,
'DD-MON-YYYY');
--END IF;
END SET_DEBIT_LEG;
PROCEDURE SET_TRAN_KEY_VALUES IS
BEGIN
PKG_AUTOPOST.PV_TRAN_KEY.TRAN_BRN_CODE := V_ACNTS_BRN_CODE;
PKG_AUTOPOST.PV_TRAN_KEY.TRAN_DATE_OF_TRAN := W_CBD;
PKG_AUTOPOST.PV_TRAN_KEY.TRAN_BATCH_NUMBER := 0;
PKG_AUTOPOST.PV_TRAN_KEY.TRAN_BATCH_SL_NUM := 0;
END SET_TRAN_KEY_VALUES;
PROCEDURE SET_TRANBAT_VALUES IS
BEGIN
PKG_AUTOPOST.PV_TRANBAT.TRANBAT_SOURCE_TABLE := 'ATMCHGCTL';
PKG_AUTOPOST.PV_TRANBAT.TRANBAT_SOURCE_KEY := V_ACNTS_BRN_CODE;
PKG_AUTOPOST.PV_TRANBAT.TRANBAT_NARR_DTL1 := 'ATM CHARGES';
PKG_AUTOPOST.PV_TRANBAT.TRANBAT_NARR_DTL2 := '';
PKG_AUTOPOST.PV_TRANBAT.TRANBAT_NARR_DTL3 := '';
END SET_TRANBAT_VALUES;
PROCEDURE SP_POSTING_PROCESS IS
BEGIN
SET_CREDIT_LEG;
SET_DEBIT_LEG;
W_ERR_CODE := '';
PKG_POST_INTERFACE.G_PGM_NAME := W_PROC_NAME;
SET_TRAN_KEY_VALUES;
SET_TRANBAT_VALUES;
PKG_APOST_INTERFACE.SP_POST_SODEOD_BATCH(W_ENTITY_NUM,'A',
W_IND,
W_ADV_IND,
W_ERR_CODE,
W_ERR_MSG,
W_BATCH_NUMBER);
IF (W_ERR_CODE <> '0000') THEN
W_ERR_MSG := FN_GET_AUTOPOST_ERR_MSG(W_ENTITY_NUM);
RAISE E_USEREXCEP;
END IF;
W_IND := 0;
W_ADV_IND := 0;
PKG_APOST_INTERFACE.SP_POSTING_END(W_ENTITY_NUM);
INSERT_ATMCHGCTL;
END SP_POSTING_PROCESS;
PROCEDURE INSERT_HOVERING IS
BEGIN
SELECT NVL(MAX(HOVERING_SL_NUM),0) + 1
INTO W_COUNT
FROM HOVERING
WHERE HOVERING_ENTITY_NUM = W_ENTITY_NUM
AND HOVERING_BRN_CODE = V_ACNTS_BRN_CODE
AND HOVERING_YEAR = W_HOVER_YEAR;
IF W_COUNT IS NULL OR W_COUNT = 0 THEN
W_COUNT := 0;
W_COUNT := W_COUNT + 1;
END IF;
INSERT INTO HOVERING
(HOVERING_ENTITY_NUM,
HOVERING_BRN_CODE,
HOVERING_YEAR,
HOVERING_SL_NUM,
HOVERING_DATE_OF_ENTRY,
HOVERING_TYPE,
HOVERING_MANUALLY_ENTD_FLG,
HOVERING_RECOVERY_FROM_ACNT,
HOVERING_RECOVERY_INTO,
HOVERING_CHG_CODE,
HOVERING_GLACC_CODE,
HOVERING_RECOVERY_TO_ACNT,
HOVERING_CONTRACT_NUM,
HOVERING_RECOVERY_CURR,
HOVERING_RECOVERY_AMT,
HOVERING_RECOVERY_DUE_DATE,
HOVERING_START_DATE,
HOVERING_END_DATE,
HOVERING_RECOVERY_NARR1,
HOVERING_RECOVERY_NARR2,
HOVERING_RECOVERY_NARR3,
HOVERING_REM1,
HOVERING_REM2,
HOVERING_REM3,
HOVERING_SOURCE_TABLE,
HOVERING_SOURCE_KEY,
HOVERING_ENTD_BY,
HOVERING_ENTD_ON,
HOVERING_LAST_MOD_BY,
HOVERING_LAST_MOD_ON,
HOVERING_AUTH_BY,
HOVERING_AUTH_ON,
HOVERING_STATUS,
HOVERING_CANC_BY,
HOVERING_CANC_ON,
HOVERING_PENDING_AMT,
TBA_MAIN_KEY,
HOVERING_CHG_ON_AMT,
HOVERING_STAX_AMT,
HOVERING_TOT_RECOVERY_AMT)
VALUES
(W_ENTITY_NUM,
V_ACNTS_BRN_CODE,
W_HOVER_YEAR,
W_COUNT,
W_CBD,
--'HOVCHG', SATHISH KUMAR TAN COMMENT 26DEC2011
'3',
'1',
V_INTERNAL_ACNUM,
'G',
V_PRODGCP_ATM_CHG,
V_CHG_INCOME_GL,
'0',
'0',
V_ACNTS_CURR_CODE,
W_CHG_AMT,
W_CBD,
W_CBD,
'ATM CHARGES:'||TO_CHAR(W_CBD,'MON'),--sathisshan tanzania added 16feb2012
PKG_EODSOD_FLAGS.PV_USER_ID,
TO_DATE(W_CBD_TIME,'DD-MON-YY HH24:MI:SS'),
PKG_EODSOD_FLAGS.PV_USER_ID,
TO_DATE(W_CBD_TIME,'DD-MON-YY HH24:MI:SS'),
W_CHG_AMT,
W_CHG_AMT);
EXCEPTION
WHEN OTHERS THEN
W_ERR_MSG := 'INSERT_HOVERING FAILED' || SQLERRM;
RAISE E_USEREXCEP;
END INSERT_HOVERING;
PROCEDURE INSERT_HOVERRECBRK IS
BEGIN
INSERT INTO HOVERRECBRK
(HOVERBRK_ENTITY_NUM,
HOVERBRK_BRN_CODE,
HOVERBRK_YEAR,
HOVERBRK_SL_NUM,
HOVERBRK_BRK_SL,
HOVERBRK_INTERNAL_ACNUM,
HOVERBRK_GLACC_CODE,
HOVERBRK_CURR_CODE,
HOVERBRK_RECOVERY_AMT
VALUES
(W_ENTITY_NUM,
V_ACNTS_BRN_CODE,
W_HOVER_YEAR,
W_COUNT,
1,
'0',
V_CHG_INCOME_GL,
V_ACNTS_CURR_CODE,
W_CHG_AMT
EXCEPTION
WHEN OTHERS THEN
W_ERR_MSG := 'INSERT_HOVERRECBRK FAILED' || SQLERRM;
RAISE E_USEREXCEP;
END INSERT_HOVERRECBRK;
PROCEDURE INSERT_HOVERSEQ IS
BEGIN
DELETE FROM HOVERSEQ
WHERE
HOVERSEQ_ENTITY_NUM=W_ENTITY_NUM
AND HOVERSEQ_BRN_CODE=V_ACNTS_BRN_CODE
AND HOVERSEQ_YEAR=W_HOVER_YEAR;
INSERT INTO HOVERSEQ
(HOVERSEQ_ENTITY_NUM,
HOVERSEQ_BRN_CODE,
HOVERSEQ_YEAR,
HOVERSEQ_LAST_SEQ_NUM
VALUES
(W_ENTITY_NUM,
V_ACNTS_BRN_CODE,
W_HOVER_YEAR,
W_COUNT
EXCEPTION
WHEN OTHERS THEN
W_ERR_MSG := 'INSERT_HOVERSEQ FAILED' || SQLERRM;
RAISE E_USEREXCEP;
END INSERT_HOVERSEQ;
PROCEDURE HOVERING_PROCESS IS
BEGIN
IF W_CHG_AMT IS NOT NULL THEN
UPDATE ACNTBAL
SET ACNTBAL_AC_DB_QUEUE_AMT = ACNTBAL_AC_DB_QUEUE_AMT
+ W_CHG_AMT
WHERE ACNTBAL_ENTITY_NUM = W_ENTITY_NUM
AND ACNTBAL_INTERNAL_ACNUM = V_INTERNAL_ACNUM
AND ACNTBAL_CURR_CODE = V_ACNTS_CURR_CODE;
END IF;
END HOVERING_PROCESS;
PROCEDURE SP_HOVERING_PROCESS IS
BEGIN
INSERT_HOVERING;
HOVERING_PROCESS;
INSERT_HOVERRECBRK;
INSERT_HOVERSEQ;
INSERT_ATMCHGCTL;
END SP_HOVERING_PROCESS;
PROCEDURE SP_PROCESS_ACNTS_DETAILS IS
BEGIN
IF ACNTS_REC.FIRST IS NOT NULL THEN
FOR J IN ACNTS_REC.FIRST .. ACNTS_REC.LAST LOOP
V_ACNTS_ATM_OPERN :=ACNTS_REC(J).W_ACNTS_ATM_OPERN;
IF V_ACNTS_ATM_OPERN = 1 THEN
V_ACNTS_PROD_CODE :=ACNTS_REC(J).W_ACNTS_PROD_CODE;
V_ACNTS_AC_TYPE :=ACNTS_REC(J).W_ACNTS_AC_TYPE;
V_ACNTS_CURR_CODE :=ACNTS_REC(J).W_ACNTS_CURR_CODE;
V_INTERNAL_ACNUM :=ACNTS_REC(J).W_ACNTS_INTERNAL_ACNUM;
V_ACNTS_OPENING_DATE:=ACNTS_REC(J).W_ACNTS_OPENING_DATE;
V_ACNTS_BRN_CODE :=ACNTS_REC(J).W_ACNTS_BRN_CODE;
--KESAVAN-DAR-10-02-2012-BEG
V_PRODGCP_ATM_CHG :=ACNTS_REC(J).W_CHG_CODE ;
V_PRODGCP_ATM_CHG_FREQ :=ACNTS_REC(J).W_FREQ ;
--KESAVAN-DAR-10-02-2012-END
IF PKG_PROCESS_CHECK.FN_IGNORE_ACNUM(W_ENTITY_NUM,V_INTERNAL_ACNUM) = FALSE THEN
SP_GET_LAST_POSTED_DATE;
IF V_ACNTS_ATM_OPERN=1 THEN
READ_PRODGENCP(W_ERR_MSG);
IF V_PRODGCP_ATM_CHG_FREQ IS NOT NULL THEN
SP_GET_BAL;
-- SP_GET_CHARGES; SATHISH KUMAR TANZANIA COMMENT 28-JAN-2012
-- SATHISH KUMAR TANZANIA COMMENT 28-JAN-2012 BEG
IF V_PRODGCP_ATM_CHG IS NOT NULL THEN
SP_GET_CHARGES;
END IF;
-- SATHISH KUMAR TANZANIA COMMENT 28-JAN-2012 END
END IF;
END IF;
IF V_PRODGCP_ATM_CHG_FREQ IS NOT NULL THEN
--SATHISHAN TANZANIA 15FEB2012 BEG
IF W_LAST_POSTED_DATE IS NULL THEN
W_CHG_FROM_DATE :=LAST_DAY(V_ACNTS_OPENING_DATE);
ELSE
W_CHG_FROM_DATE := LAST_DAY(W_LAST_POSTED_DATE + 1);
END IF;
/* IF V_PRODGCP_ATM_CHG_FREQ <> 'A' THEN
IF W_LAST_POSTED_DATE IS NULL THEN
--W_CHG_FROM_DATE := W_YR_BEG_DATE;
W_CHG_FROM_DATE :=LAST_DAY(V_ACNTS_OPENING_DATE);
W_DESC_DATE :=LAST_DAY(V_ACNTS_OPENING_DATE);
ELSE
W_DESC_DATE :=W_LAST_POSTED_DATE+1;
W_CHG_FROM_DATE := LAST_DAY(W_LAST_POSTED_DATE + 1);
END IF;
ELSE
IF W_LAST_POSTED_DATE IS NULL THEN
W_CHG_FROM_DATE1 := LAST_DAY(V_ACNTS_OPENING_DATE);
--W_LAST_POSTED_DATE :=V_ACNTS_OPENING_DATE;
ELSE
W_CHG_FROM_DATE1 := LAST_DAY(W_LAST_POSTED_DATE + 1);
END IF;
END IF;*/
/* IF W_LAST_POSTED_DATE IS NOT NULL THEN
IF V_ACNTS_OPENING_DATE > W_LAST_POSTED_DATE THEN
W_CHG_FROM_DATE := LAST_DAY(V_ACNTS_OPENING_DATE);
END IF;
END IF;*/
SP_GET_PERIOD;
IF W_FACTOR > 1 THEN
W_FACTOR :=1;
END IF;
--SATHISHAN TANZANIA 15FEB2012 END
W_CHG_AMT := W_CHG_AMT * W_FACTOR;
IF W_CHG_AMT > 0 THEN
IF AC_AVLBAL > W_CHG_AMT THEN
SP_POSTING_PROCESS;
W_CHG_AMT :=0; --SATHISSHAN TANZANIA ADDED 16FEB2012
W_FACTOR :=0 ; --SATHISSHAN TANZANIA ADDED 16FEB2012
ELSE
W_BATCH_NUMBER :=0; -- SATHISH KUMAR TANZANIA COMMENT 28-JAN-2012 ADDED
SP_HOVERING_PROCESS;
W_CHG_AMT :=0; --SATHISSHAN TANZANIA ADDED 16FEB2012
W_FACTOR :=0; --SATHISSHAN TANZANIA ADDED 16FEB2012
END IF;
END IF;
END IF;
END IF;
END IF;
END LOOP;
END IF;
END SP_PROCESS_ACNTS_DETAILS;
--SATHISHAN TANZANIA 15FEB2012 BEG
/* PROCEDURE SP_GET_MQHY_FLAG IS
BEGIN
IF GET_MQHY_MON(PKG_ENTITY.FN_GET_ENTITY_CODE,W_CBD,'Y') = '1' THEN
W_EOD_MQHY_FLG := 'Y';
ELSIF GET_MQHY_MON(PKG_ENTITY.FN_GET_ENTITY_CODE,W_CBD,'H') = '1' THEN
W_EOD_MQHY_FLG := 'H';
ELSIF GET_MQHY_MON(PKG_ENTITY.FN_GET_ENTITY_CODE,W_CBD,'Q') = '1' THEN
W_EOD_MQHY_FLG := 'Q';
ELSIF GET_MQHY_MON(PKG_ENTITY.FN_GET_ENTITY_CODE,W_CBD,'M') = '1' THEN
W_EOD_MQHY_FLG := 'M';
ELSE
W_EOD_MQHY_FLG := 'D';
END IF;
END SP_GET_MQHY_FLAG;*/
--SATHISHAN TANZANIA 15FEB2012 END
PROCEDURE SP_ATMSERCHG_REC(V_ENTITY_NUM IN NUMBER ,
P_BRN_CODE IN NUMBER DEFAULT 0,
P_INTERNAL_NUM IN NUMBER DEFAULT 0,
P_PRODCODE IN NUMBER DEFAULT 0) AS
BEGIN
PKG_ENTITY.SP_SET_ENTITY_CODE(V_ENTITY_NUM);
W_ENTITY_NUM:=PKG_ENTITY.FN_GET_ENTITY_CODE;
W_CBD := PKG_EODSOD_FLAGS.PV_CURRENT_DATE;
W_USER_ID := PKG_EODSOD_FLAGS.PV_USER_ID;
V_INTERNAL_ACNUM:=P_INTERNAL_NUM;
IF (P_BRN_CODE IS NULL) THEN
W_BRN_CODE := 0;
ELSE
W_BRN_CODE :=P_BRN_CODE;
END IF;
IF (P_PRODCODE IS NULL) THEN
W_PROD_CODE := 0;
ELSE
W_PROD_CODE := P_PRODCODE;
END IF;
IF (P_INTERNAL_NUM IS NULL) THEN
V_INTERNAL_ACNUM := 0;
ELSE
V_INTERNAL_ACNUM := P_INTERNAL_NUM;
END IF;
IF (TRIM(W_USER_ID) IS NULL) THEN
W_ERR_MSG := 'USER ID SHOULD BE SPECIFIED';
RAISE E_USEREXCEP;
END IF;
INIT_PARA;
W_CBD := PKG_EODSOD_FLAGS.PV_CURRENT_DATE;
W_HOVER_YEAR := TO_NUMBER(TO_CHAR(W_CBD, 'YYYY'));
W_CBD_TIME := W_CBD || ' ' ||
PKG_PB_GLOBAL.FN_GET_CURR_BUS_TIME(W_ENTITY_NUM);
W_YR_BEG_DATE := PKG_PB_GLOBAL.SP_FORM_START_DATE(W_ENTITY_NUM,W_CBD,'Y');
--SP_GET_MQHY_FLAG; SATHISH KUMAR TANZANIA COMMENT 28-JAN-2012 ADDED
--KESAVAN SP_READ_ACNTS_DETAILS;
PKG_PROCESS_CHECK.INIT_PROC_BRN_WISE(W_ENTITY_NUM,W_BRN_CODE);
FOR IDX IN 1 .. PKG_PROCESS_CHECK.V_ACNTBRN.COUNT LOOP
L_BRN_CODE := PKG_PROCESS_CHECK.V_ACNTBRN(IDX).LN_BRN_CODE;
IF PKG_PROCESS_CHECK.CHK_BRN_ALREADY_PROCESSED(W_ENTITY_NUM,L_BRN_CODE) = FALSE THEN
W_BRN_CODE := L_BRN_CODE;
-- KESAVAN-dar-11-02-2012-BEG
IF P_INTERNAL_NUM = 0 THEN
V_INTERNAL_ACNUM := 0 ;
END IF;
-- KESAVAN-dar-11-02-2012-End
PKG_APOST_INTERFACE.SP_POSTING_BEGIN(W_ENTITY_NUM);
SP_READ_ACNTS_DETAILS;
-- KESAVAN SP_PROCESS_ACNTS_DETAILS;
IF TRIM(PKG_EODSOD_FLAGS.PV_ERROR_MSG) IS NULL THEN
PKG_PROCESS_CHECK.INSERT_ROW_INTO_EODSODPROCBRN(W_ENTITY_NUM,W_BRN_CODE);
END IF;
PKG_PROCESS_CHECK.CHECK_COMMIT_ROLLBACK_STATUS(W_ENTITY_NUM);
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS THEN
IF TRIM(W_ERR_MSG) IS NULL THEN
W_ERR_MSG := SUBSTR('ERROR IN SP_ATMSERCHG_REC ' || SQLERRM,1,1000);
END IF;
PKG_EODSOD_FLAGS.PV_ERROR_MSG := W_ERR_MSG;
PKG_PB_GLOBAL.DETAIL_ERRLOG(PKG_ENTITY.FN_GET_ENTITY_CODE,'E',PKG_EODSOD_FLAGS.PV_ERROR_MSG,' ',0);
PKG_PB_GLOBAL.DETAIL_ERRLOG(PKG_ENTITY.FN_GET_ENTITY_CODE,'E',SUBSTR(SQLERRM,1,1000),' ',0);
END SP_ATMSERCHG_REC;
END PKG_ATMSERCHG_REC ; -
Error while converting CLOB to varchar using DBMS_LOB.SUBSTR() in Oracle11g
Hi
Whenever I am using DBMS_LOB.SUBSTR(columnname,4000,1) package for a clob column in a simple Select Query, the following error is thrown for Oracle 11g version.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 1.
Please find the installation details of the database and the character set
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
PARAMETER VALUE
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 11.2.0.1.0
It is working fine if I reduce from 4000 to 3500 . But I want to use 4000.
Please let me know if any solutionyou are using a multibyte character set:
NLS_CHARACTERSET AL32UTF8
so each character takes between 1 and 4 bytes of storage.
a varchar2(4000) column can only hold 4000 BYTES. Regardless of the character set - varchar2 is limited to 4000 bytes.
In a single byte character set, that is 4000 characters as a character = a byte
In your character set, a varchar2(4000) can hold somewhere between 1000 and 4000 characters - depending on what the characters are.
So, you must have some CLOB whose first 4000 characters include at least one "more than one byte" character. That won't fit into a varchar2(4000)
Your approach of backing off the substr size is reasonable (and you'll need to remember that in your application - end users can type in as little as 1000 characters and get an error about the column being too small!) as it reduces the number of BYTES to be belong 4000. -
Oracle error while using function dbms_lob.substr()
Following sql statement is causing error select dbms_lob.substr(clob_colum,32767) from Table* when the size of clob_column goes above 4 KB. The error message is given below
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 1
The issue is getting resolved when reducing the size of the CLOB column.
Is this a limitation of oracle query? Can anybody please help me to resolve this error? Thanks in Advance.
Regards,
ShineHi.
>
We are using this query inside a package and the data is used to generate an XML file and it finally used to generate a pdf report. There exists many clob records with huge size and in that case report execution fails with the oracle message.
>
While the XML file is generated or PDF report?
Which message? ORA-06502: PL/SQL: numeric or value error: character string buffer too small ???
>
So we need to modify the query in a way that it executes fine even if the size is more than 4 KB(upto a possible size). I tried using substr function against the clob column but it does not returned any value.
>
Then, do you need the first 4 KB or the entire CLOB?
Can't you write CLOB directly?
Please post some example data as well as your desired output in order to understand completely your problem and test our ideas.
Regards. -
ODI Error while using substring function in odiref.getTable function
Hi,
I am trying to strip the interface table name in the IKM code.Below is the code
create unique index <%=odiRef.getTable("L","INT_NAME","W").substring(0,20)%>
*on <%=odiRef.getTable("L","INT_NAME","W")%>(<%=odiRef.getColList("", "[COL_NAME]", ", ", "", "UK")%>)*
*<%=odiRef.getUserExit("FLOW_TABLE_OPTIONS")%>*
But i get the below error, can some one please help ?
com.sunopsis.tools.core.exception.SnpsSimpleMessageException: Error during task interpretation
Task:8
java.lang.Exception: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Create Unique Index on flow table at line: 0 column: columnNo
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:635)
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:671)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:441)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.bsf.BSFException: BeanShell script error: Parse error at line 2, column 10. Encountered: ( BSF info: Create Unique Index on flow table at line: 0 column: columnNo
at bsh.util.BeanShellBSFEngine.eval(Unknown Source)
at bsh.util.BeanShellBSFEngine.exec(Unknown Source)
at com.sunopsis.dwg.codeinterpretor.SnpCodeInterpretor.transform(SnpCodeInterpretor.java:621)
... 11 more
Text:create unique index <?=snpRef.getObjectN
on <?=snpRef.getObjectName("L", "%INT_PRFL1_PROC_SHR_APRC_AMTZ_RQST", "W") ?>(WKFL_ACTV_ID)
NOLOGGING
at com.sunopsis.dwg.dbobj.SnpSessStep.createTaskLogs(SnpSessStep.java:692)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:441)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
at java.lang.Thread.run(Thread.java:662)
Thanks,
Babu.Hi Ram,
please check, if the note 1396300 is implemented in your system?
If so, check the table T777F.
It should have the following entries:
MANDT ISTAT INFTY FCODE
002 1 **** AEND
002 1 **** COP
002 1 **** CUTI
002 1 **** DEL
002 1 **** DISP
002 1 **** INSE
002 1 **** LISD
002 1 **** PLVO
In case these entries are missing, please do an adjustment with your 000-client.
Hope this help
Sarah -
Using substring function with error
Hi Guys,
I have a source field with 1200 characters which need to map to multiple target segments for 132 count of this source field.
This is not a mandatory field so it sometimes come without any value.
I am using substring function to breakout the string for every 132 characters and mapped to the target segments.
There are two problems, first it seems that if source is blank, there will be error.
Second, if source field come with only eg. 300 characters, error will also occurs.
I have searched thru SDN and try some of the UDF but to no avail.
Appreciate your guidance on this problem.
Regards
FNGH Rahul,
I have tried your quote but face some syntax error as follows
Function calculate, Line 6:
cannot find symbol symbol : method length() location: class java.lang.String[] j = input.length();
Function calculate, Line 26:
cannot find symbol symbol : method subString(int,int) location: class java.lang.String[]
result.addValue(input.subString(0,EndIndex)); ^
Function calculate, Line 34:
cannot find symbol symbol : method subString(int,int) location: class java.lang.String[] result.addValue(input.subString(StartIndex,EndIndex)); ^
Function calculate, Line 40:
cannot find symbol symbol : method subString(int,int) location: class java.lang.String[] result.addValue(input.subString(StartIndex,EndIndex)); ^ Note: /usr/sap/D03/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd66a3a60002911e09ba9e41f132d6b68/source/com/sap/xi/tf/_MM_MT_COMS_TO_ZME_CRE_CHG_CONTRACT_.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: /usr/sap/D03/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapd66a3a60002911e09ba9e41f132d6b68/source/com/sap/xi/tf/_MM_MT_COMS_TO_ZME_CRE_CHG_CONTRACT_.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 4 errors -
Error inF2F mulitiline scenario using substring
Hi,
I am doing a F2F mulitiline scenario using substring
In AdapterFramework , i am getting this message
Sender Adapter v1014 for Party '', Service 'YAMAHA_BUSYS':
Configured at 19:12:31 2008-10-22
Initialization error: Conversion initialization failed with java.lang.Exception: java.lang.NullPointerException
Could you please let me know what could be wrong ?
My content conversion parameters are
Substr.fieldFixedLengths: 10,10,10,10,10,10,10
Substr.fieldNames:FirstName,LastName,MiddleName,City,Place,State,Country
Substr.processFieldNames: fromConfiguration
Thanks
RamHi Ram,
I think the problem is with the source file
it should be like this for your case
Substr.fieldFixedLengths: 10,10,10,10,10,10,10
Substr.fieldNames:FirstName,LastName,MiddleName,City,Place,State,Country
Sample file
FirstName LastName MiddleNameCity Place State Country
Each file length should be 10 and not like this
FirstName LastName MiddleName City Place State Country
Thanks,
Prakash
Maybe you are looking for
-
Contructing an RS-232 interface using USB interfaces Digital IO
Hi, I've got a NI USB interfaces to work with, which has plenty of digital IO available (USB 6259) I need to communicate via RS-232 with a few instruments, which I've already done using USB to RS-232 devices. However, I would like to do everything on
-
WLCs 5508, HA enabled and Internal DHCP
Hi: Designing a new project for a customer in which a pair of WLC-5508 and a bunch of AP-3602I will be deployed. Controllers running 7.4 image, and I'd also like to use them as internal DHCP servers for clients in different WLANs As for the redundanc
-
Create two one-to-one self-reference mappings
We need help on the following problem with Toplink: We have a table massnahme with several attributes. table massnahme massnahmeID prevMassnahme nextMassnahme prevMassnahme, nextMassnahme are self-references on massnahme. We take prevMassnahme and ne
-
Helo, I use Jdev3.1 as my Java IDE. I have to develop a server side java objects that will be deploy to OAS 4.0.8. My server side java objects will wait for client calls then perform certain business logics depending on each call? Please give me some
-
I have tried to read evrything and done everything on here to have my ipod working but no luck still. This is my second ipod in 2 days thinking it was defective. My question why i get the cant write or read error from rene ipod all the time when i up