JDBC string- number conversion in Canadian locale
How come Oracle JDBC driver thinks "2.1" is an invalid number in Canadian locale? The decimal point in Canadian locale is still "." as used in US locale. It is easy to verify this by changing your locale to English (Canada) and check the "Number" settings on your Windows machine.
This is definitely a bug. Can antone from Oracle confirm this?
Thanks.
It is working now because you have imported oracle.jbo.domain.Number and hence not using java.lang.Number.
java.lang.Number is a abstract class and hence no constructors, whereas oracle.jbo.domain.Number has many constructors (one of which Srinath suggested to use.)
you can still make it work with
oracle.jbo.domain.Number n = new oracle.jbo.domain.Number(businessReqID) ; //if businessReqID is a String.
You dont need to get the int from the String in order to use this constructor.
Thanks
Tapash
Similar Messages
-
I am trying to convert a number in a string (a SPICE netlist) to a double. The string contains extra letters. Is there a String or double (or float) method that safely converts without vomitting on unwanted characters?
And by the way, I used to (about 1+ years ago) be able to look at a reference online that gave a detailed description of the Java standard class methods. Know where I might find this?
-erikyou can refer the api at
http://java.sun.com/j2se/1.3/docs/api/ -
Re: Error, numeric or value error: character to number conversion error
Can someone please please tell me why I'm getting this error and what I'm doing wrong? It looks like a simple error, "numeric or value error: character to number conversion error".
My code is as follows:
string connectionString = WebConfigurationManager.ConnectionStrings["DEMO_TEST"].ConnectionString;
OracleConnection con = new OracleConnection(connectionString);
OracleCommand cmd = new OracleCommand("DEMO.PKG_LOCATION_TYPE.INS", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("@P_DESCRIPTION", OracleDbType.Varchar2, 60));
cmd.Parameters["@P_DESCRIPTION"].Value = "Test_Description";
cmd.Parameters.Add(new OracleParameter("@P_NAME", OracleDbType.Varchar2, 6));
cmd.Parameters["@P_NAME"].Value = "Test_Name";
cmd.Parameters.Add(new OracleParameter("@P_LOCATION_TYPE_CD", OracleDbType.Decimal, 4));
cmd.Parameters["@P_LOCATION_TYPE_CD"].Direction = ParameterDirection.InputOutput;
con.Open();
try
cmd.ExecuteNonQuery();
catch
//In case of an error
finally
con.Close();
con.Dispose();
And I recieve the following error block:
Oracle.DataAccess.Client.OracleException was unhandled by user code
Message="ORA-06502: PL/SQL: numeric or value error: character to number conversion error\nORA-06512: at line 1"
Source="Oracle Data Provider for .NET"
DataSource="demotest"
Number=6502
Procedure="DEMO.PKG_LOCATION_TYPE.INS"
StackTrace:
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src)
at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()
at System.Web.UI.WebControls.Wizard.OnFinishButtonClick(WizardNavigationEventArgs e)
at System.Web.UI.WebControls.Wizard.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.WebControls.Wizard.WizardChildTable.OnBubbleEvent(Object source, EventArgs args)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
********************************************************Are the parameters in your procedure in the same order as they are created in this code? Oracle command works by position unless you change it to be BindByName.
Failing that you seem to have defined a parameter (P_NAME) to have a length of 6, and are then setting it's value to a string with a length of 9.
Also the in/output parameter is defined as type decimal. Is this correct? It is defined as InputOutput but you don't assign it any value.
If these suggestions don't help then perhaps if you post the stored procedure you might get some more ideas.
HTH
Lyndon -
ORA-06502: PL/SQL: numeric or value error: character to number conversion
Hello,
I am new to Oracle Apex so I decided to read and do the tutorials that are on the apex.oracle.com site.
Now I am at the tutorial 6: How to Work with Check Boxes of the Advanced Tutorials.
At a certain point you have to add a new radio button.
At the Item Source Value you have to add SELECT 'Y' FROM DUAL WHERE :P2_LIST_PRICE*0.75=:P2_MIN_PRICE.
But when I try to create the item, I keep getting the following error:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
Error creating item.
Does anybody know what could be the problem.
Thanks in advance.CREATE OR REPLACE PROCEDURE xxbb_query (
p_branch_code XXBOB_HRMS_APPRAISALS_DATA.Branch_code%TYPE,
p_PERIOD_NAME XXBOB_HRMS_APPRAISALS_DATA.PERIOD_NAME%TYPE
IS
emp_refcur SYS_REFCURSOR;
v_deposits XXBOB_HRMS_APPRAISALS_DATA.deposits%TYPE :=0;
v_branch_code XXBOB_HRMS_APPRAISALS_DATA.branch_code%TYPE:=0;
p_query_string VARCHAR2(500);
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello' || ' ' || '...');
p_query_string := 'SELECT Avg(deposits) Dep,branch_code FROM XXBOB_HRMS_APPRAISALS_DATA WHERE ' ||
*' Branch_code = :branch_code '||*
*' AND PERIOD_NAME = SubStr( :PERIOD_NAME ,1,4))||(SubStr( :PERIOD_NAME ,InStr( :PERIOD_NAME ,'-',1,1)+3,5)) ' ||*
*' group BY SubStr(PERIOD_NAME,5),BRANCH_CODE ';*
DBMS_OUTPUT.PUT_LINE('Hi' || ' ' || '...');
OPEN emp_refcur
FOR p_query_string USING p_branch_code,v_p_PERIOD_NAME,v_p_PERIOD_NAME,v_p_PERIOD_NAME;
-- DBMS_OUTPUT.PUT_LINE('----- -------');
Here I m passing a string variable to pass the select statement for the ref cursor.
There seems some problem in the substr conversion in the statement.
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
But when i run as a independent staement passing real values in the place of placeholders
i get the result right.
The *:PERIOD_NAME* format is *'Jan-2009-10'* .
And I need to pass the *:PERIOD_NAME* to the query as *'Jan-09-10'*
Pls suggest.
Edited by: user7391361 on Jul 23, 2009 8:28 AM -
FM for Material number conversion from R/3 to APO in R/3
Hi,
Can anybody tell me conversion exit (function module) for Material number conversion from R/3 to APO in R/3 system. I mean i have 18 digit R/3 material number which i have to convert to 40 digit APO material number in R/3 system.
Please suggest to win full points.
Thaniks in Advance,
Chandan DubeyDear Chandan,
Conversion Exits:
CONVERSION_EXIT_MATN1_INPUT ....... If you are storing Material With Zeros
Then concatenate it with 22 zeros. i.e. '0000000000000000000000000000'.
For example:
data : v_matnr type matnr, "R/3 Material
v_apo_matnr(40) type c, "APO Material with 40 length
v_zeros(22) type c. value '0000000000000000000000000000'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING INPUT = v_matnr
IMPORTING OUTPUT = v_matnr.
concatenate e_mantr v_zeros into
v_apo_matnr.
Regards,
Naveen. -
Error ORA-06502, numeric or value error character to number conversion
I have been trying to create an email including data from a table as part of the body. Whenever I try to send it, I get an error ORA-06502, numeric or value error, character to number conversion. If I take out the part referencing the table, the email will go without error, but if I put it back in I get the error.
There is the code:
DECLARE
v_email_body CLOB;
v_from_email_address VARCHAR2(100) := v('APP_USER');
v_id NUMBER;
BEGIN
v_email_body := 'Please pay the attached invoice from FY '||:P14_FY||' funds
Date: '||:P14_PURCHASE_DATE||'
Vendor: '||:P14_VENDOR||'
Invoice Number: '||:P14_INVOICE||'
Invoice Date: '||:P14_INVOICE_DT||'
Due Date: '||:P14_INVOICE_DUE_DT||'
KSR Number: '||:P14_KSR||'
DTS PO: '||:P14_DTS_PO||'
FINANCE DO: '||:P14_FINANCE_PO||'
FOR detail IN(SELECT OB_CODE
FROM BUDGET_USED
WHERE P_ID = :P14_ID)
v_email_body := v_email_body||detail.OB_CODE||utl_tcp.crlf;
LOOP
FOR detail2 IN (SELECT ob_code, amount
FROM budget_used
WHERE p_id = :P14_ID)
LOOP
v_email_body := v_email_body||detail2.ELCID||' - '||detail2.AMOUNT||utl_tcp.crlf;
END LOOP;
END LOOP;
v_email_body := v_email_body
'||:P14_EMAIL_NOTES||'
Thanks.
v_id := APEX_MAIL.SEND
(p_to => :P14_SUBMIT_TO
,p_cc => v('APP_USER')
,p_bcc => '[email protected]'
,p_from => v_from_email_address
,p_body => v_email_body
,p_subj => 'Invoice, '||:P14_VENDOR||', '||:P14_INVOICE||'');
--Having set up your email, now add one (or more) attachments...
FOR c1 in (SELECT FILENAME
,BLOB_CONTENT
,MIME_TYPE
FROM file_subjects f, apex_application_files a
where a.name = f.name
and f.P_ID = :P14_ID) LOOP
IF c1.blob_content IS NOT NULL THEN
APEX_MAIL.ADD_ATTACHMENT( p_mail_id => v_id,
p_attachment => c1.blob_content,
p_filename => c1.filename,
p_mime_type => c1.mime_type);
END IF;
END LOOP;
END;
Apex_mail.push_queue();
This is important to my company to be able to put this data into an email. If anyone can help me, I would greatly appreciate it. Thank you in advance.Lets isolate the erroring line by running the code in debug mode and adding some debug lines at various stages in the code
Apex has a builtin function named wwv_flow.debug which can print messages to the debug stack and would be visible when the page is run in debug mode.
DECLARE
v_email_body CLOB;
v_from_email_address VARCHAR2(100) := v('APP_USER');
v_id NUMBER;
BEGIN
wwv_flow.debug('BEGIN');
v_email_body := 'Please pay the attached invoice from FY '||:P14_FY||' funds
Date: '||:P14_PURCHASE_DATE||'
Vendor: '||:P14_VENDOR||'
Invoice Number: '||:P14_INVOICE||'
Invoice Date: '||:P14_INVOICE_DT||'
Due Date: '||:P14_INVOICE_DUE_DT||'
KSR Number: '||:P14_KSR||'
DTS PO: '||:P14_DTS_PO||'
FINANCE DO: '||:P14_FINANCE_PO||'
'||:P14_EMAIL_NOTES||'
Thanks.
wwv_flow.debug('Before sending mail');
v_id := APEX_MAIL.SEND
(p_to => :P14_SUBMIT_TO
,p_cc => v('APP_USER')
,p_bcc => '[email protected]'
,p_from => v_from_email_address
,p_body => v_email_body
,p_subj => 'Invoice, '||:P14_VENDOR||', '||:P14_INVOICE||'');
wwv_flow.debug('Before attachements');
--Having set up your email, now add one (or more) attachments...
FOR c1 in
(SELECT FILENAME
,BLOB_CONTENT
,MIME_TYPE
FROM file_subjects f, apex_application_files a
where a.name = f.name
and f.P_ID = :P14_ID)
LOOP
IF c1.blob_content IS NOT NULL THEN
APEX_MAIL.ADD_ATTACHMENT( p_mail_id => v_id,
p_attachment => c1.blob_content,
p_filename => c1.filename,
p_mime_type => c1.mime_type);
END IF;
END LOOP;
wwv_flow.debug('Finished attachements');
Apex_mail.push_queue();
END;What is the last message you see in the debug after running the page in debug mode and submitting it ? -
Numeric or value error: character to number conversion error
I'm having problems inserting a value from a date picker field (DD-MON-YYYY HH MI )
i'm submitting this value to a packaged procedure that accepts this field as VARCHAR2 .
on the insert, i do a to_date( P_DATE, 'DD-MON-YYYY HH:MI PM' )
and i get the numeric conversion error.
If I change the to_date on the procedure side, I get the :could not read the end of the format mask - which I've found threads about on this site.
I've tried using HH24 and different formats, but I get one of the two above errors on the insert.
If I don't fill in the datepicker field at all, it works fine.
help is appreciated !
BillHere is the trace anyway:
*** ACTION NAME:(application 4000, page 1) 2004-09-24 12:58:44.052
*** MODULE NAME:(HTML DB) 2004-09-24 12:58:44.052
*** SERVICE NAME:(TOPS) 2004-09-24 12:58:44.052
*** SESSION ID:(151.1) 2004-09-24 12:58:44.052
*** 2004-09-24 12:58:44.052
ksedmp: internal or fatal error
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
Current SQL statement for this session:
declare
rc__ number;
begin
owa.init_cgi_env(:n__,:nm__,:v__);
htp.HTBUF_LEN := 255;
null;
null;
null;
null;
f(p=>:p);
if (wpg_docload.is_file_download) then
rc__ := 1;
wpg_docload.get_download_file(:doc_info);
null;
null;
null;
commit;
else
rc__ := 0;
null;
null;
null;
commit;
owa.get_page(:data__,:ndata__);
end if;
:rc__ := rc__;
end;
----- PL/SQL Call Stack -----
object line object
handle number name
6A3C4A00 532 package body FLOWS_010500.WWV_FLOW_UTILITIES
6A3C4A00 2502 package body FLOWS_010500.WWV_FLOW_UTILITIES
6A3C4A00 2748 package body FLOWS_010500.WWV_FLOW_UTILITIES
6A0E63C8 991 package body FLOWS_010500.WWV_FLOW_FORMS
6A11675C 932 package body FLOWS_010500.WWV_FLOW_DISP_PAGE_PLUGS
6A11675C 247 package body FLOWS_010500.WWV_FLOW_DISP_PAGE_PLUGS
6A4B54E0 8341 package body FLOWS_010500.WWV_FLOW
6A2A99F0 102 procedure FLOWS_010500.F
6A2B9E54 10 anonymous block
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
ksedmp+524 CALLrel ksedst+0 1
ksedmptracecb+15 CALLrel _ksedmp+0 C
_ksddoa+118 CALLreg 00000000 C
ksdpcg+143 CALLrel ksddoa+0
ksdpec+180 CALLrel ksdpcg+0 1966 6D7D208 1
__PGOSF3__ksfpec+11 CALLrel _ksdpec+0 0
8
_kgerev+77 CALLreg 00000000 7474210 1966
kgerec1+18 CALLrel kgerev+0 7474210 6DCE5EC 1966 1
6D7D260
peirve+465 CALLrel kgerec1+0
pevmCVTCN+346 CALLrel _peirve+0
pfrinstrCVTCN+36 CALLrel pevmCVTCN+0 6E6E604 71CE370 7160F0C
pfrrunno_tool+51 CALL??? 00000000
pfrrun+1834 CALLrel pfrrun_no_tool+0 6E6E604 6A3C010A 6E6E640
plsqlrun+1051 CALLrel _pfrrun+0 6E6E604
peicnt+179 CALLrel plsql_run+0 6E6E604 1 0
kkxexe+477 CALLrel peicnt+0
opiexe+4896 CALLrel kkxexe+0 6A2B9E54
kpoal8+1705 CALLrel opiexe+0 49 3 6D7E06C
_opiodr+977 CALLreg 00000000 5E 14 6D7E7CC
_ttcpip+1827 CALLreg 00000000 5E 14 6D7E7CC 0
_opitsk+1098 CALL??? 00000000
opiino+938 CALLrel opitsk+0 0 0 747ABC0 6DEFB14 D8 0
_opiodr+977 CALLreg 00000000 3C 4 6D7FBBC
opidrv+479 CALLrel opiodr+0 3C 4 6D7FBBC 0
sou2o+45 CALLrel opidrv+0 3C 4 6D7FBBC
opimai+237 CALLrel sou2o+0
OracleThreadStart@ CALLrel opimai+0
4+899
77E7D338 CALLreg 00000000 -
PL/SQL: numeric or value error: character to number conversion error in TRG
Hi,
I've got strange issue with one trigger which during update of table reports (DB is 9.2.0.8):
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "UDR_LOG", line 345
ORA-04088: error during execution of trigger 'UDR_LOG'but line 345 is:
END IF;
so its kind of strange
the code looks like
343 IF nvl(to_char(:old.PKD_ID),'''') <> nvl(to_char(:new.PKD_ID),'''') THEN
344 v_zmn := v_zmn || 'PKD_ID''' || to_char(:old.PKD_ID) || '''' || to_char(:new.PKD_ID) || '''';
345 END IF;
so its concatenation not to_number usage .error is triggered by update statement on any column .
I'm sorry I cant provide You with whole trigger code .
So if You could only recommend any investigation method that would be great .
Regards
GregHi, Greg,
When there's an error in a trigger, the line numbers in the error messages are relative to the first DECLARE or BEGIN statement; often, that's a few lines after CREATE OR REPLACE TRIGGER. Post a few lines after what you already posted.
If you can't find the error, then create another table for testing this, and create a smaller trigger on that table, which does only enough to cause the error. Then you'll be able to post the complete trigger, and the code needed to re-create the problem. -
ORA-06502: PL/SQL: numeric or value error: character to number conversion e
Hi,
when I do same thing in my procedure it throws below error but it works fine as annonymus block.
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
CREATE TABLE test_table
(memberid NUMBER,
trans_date date);
DECLARE
v_num number(10,0);
v_text varchar2(100);
begin
v_text := '123456abcdef';
v_num := substr(v_text,1,5);
INSERT INTO test_table
(memberid,
trans_DATE)
VALUES
(v_num,
sysdate);
end;Thanks
SandhyaWorks fine as a procedure as well;
SQL> DECLARE
2 v_num number(10,0);
3 v_text varchar2(100);
4 begin
5 v_text := '123456abcdef';
6 v_num := substr(v_text,1,5);
7 INSERT INTO test_table
8 (memberid,
9 trans_DATE)
10 VALUES
11 (v_num,
12 sysdate);
13 end;
14
15 /
PL/SQL procedure successfully completed.
SQL> select * from test_table;
MEMBERID TRANS_DAT
12345 20-MAY-10
SQL> create or replace procedure ins_test_table as
2
3 v_num number(10,0);
4 v_text varchar2(100);
5 begin
6 v_text := '123456abcdef';
7 v_num := substr(v_text,1,5);
8 INSERT INTO test_table
9 (memberid,
10 trans_DATE)
11 VALUES
12 (v_num,
13 sysdate);
14
15 end ins_test_table;
16 /
Procedure created.
SQL>
SQL> exec ins_test_table;
PL/SQL procedure successfully completed.
SQL> select * from test_table;
MEMBERID TRANS_DAT
12345 20-MAY-10
12345 20-MAY-10 -
"Settings for material number conversion not found" occurs when ...
After I run an initial load data into the InfoCube 0PUR_C01, I want to check the InfoCube Content by the following path:
RSA1 -> pick up the InfoCube 0PUR_C01, right click it and select Manage -> Get to Content tab -> Click InfoCube Content button -> Deselect all selection, only tick the 1st column checkbox next to 0Material, then hit enter, get a small window titled as "Cancel" with a red STOP msg sysing "Settings for material number conversion not found" with an "Exit" button and a question mark button, click Exit button leads to SAP Easy Access screen, if clicking the question mark button, another window pops up with the msg showed above, click Technical Information button causes the original window short dump and the short dump msg shows below in between two dashed lines:
Runtime Errors RPERF_ILLEGAL_STATEMENT
Date and Time 11/28/2005 14:43:13
ShrtText
Statement "CALL SCREEN" is not allowed in this form.
What happened?
Error in ABAP application program.
The current ABAP program "SAPLSHL2" had to be terminated because on
statements could not be executed.
This is probably due to an error in the ABAP program.
Error analysis
There is probably an error in the program
"SAPLSHL2".
The program was probably called in a conversion exit
or in a field exit. These are implemented by
function modules called CONVERSION_EXIT_xxxxx_INPUT/OUTPUT or
USER_EXIT_xxxxx_INPUT.
Conversion exits are triggered during screen field transports or
WRITE statements, field exits during field transports from the
screen to the ABAP/4 program.
In this connection, the following ABAP/4 statements are not allowed:
- CALL SCREEN
- CALL DIALOG
- CALL TRANSACTION
- SUBMIT
- MESSAGE W... and MESSAGE I...
- COMMIT WORK, ROLLBACK WORK
- COMMUNICATION RECEIVE
- STOP
- REJECT
- EXIT FROM STEP-LOOP
Moreover, conversion exits for output conversion
(implemented by function modules called
CONVERSION_EXIT_xxxxx_OUTPUT) do not allow
- MESSAGE E...
to be used.
Trigger Location of Runtime Error
Program SAPLSHL2
Include LSHL2F19
Row 3
Module type (FORM)
Module Name TECHNISCHE_INFO5
rce Code Extract
e SourceCde
1 ***INCLUDE LSHL2F19 .
2 form technische_info5.
>> call screen 1900 starting at 5 8.
4 endform.
5
6 &----
7 *& Form SHRINK_VALUES
8 &----
9 * text *
10 ----
11 * --> p1 text
12 * <-- p2 text
13 ----
14 form shrink_values.
15
16 loop at dynpselect.
17 clear checktable.
18 if dynpvaluetab-lowvalue ne space and dynpvaluetab-lowvalue na '*'.
19 move 'EQ' to checktable-op.
20 move dynpvaluetab-lowvalue to checktable-low_value.
21 append checktable.
22 endif.
What could cause the problem by selecting only 0Material when checking the InfoCube 0PUR_C01 content? What does that mean by this STOP msg "Settings for material number conversion not found"?
ThanksHi Kevin,
Set the length of 0MATERIAL and change conversion to alpha:
Re: Error Installing 0MATERIAL from Business Content
Best regards,
Eugene -
Maximum Number of Objects in Local History does not work
In our Production system, I have configured the Maximum Number of Objects in Local History to be '10'. I do not see any queries in the dropdown. I have executed and changed queries since I made this change. None of the users can see a history log.
In our Dev system, the Maximum Number of Objects in Local History is working as expected.
Is there a system-wide setting that overrides my personal setting?
Thanks.you could have a consolidated DSO with the keys alone and see if you can have an alternate design using an infoset instead....
-
String to 2D string array conversion
Hi,
I have a string like this below. I would like to extract all the texts within the quotes " ". How to do that?.
05-Mar.20:52 skalyana label type "BASELINE_1.2" (locked)
28-Apr.19:19 skalyana label type "BASELINE_1.8"
i have tried using Match regular expression. I am able to extract one text within " ".
I would like to know how to extract all the text within " "
I have attached the vi for your reference
Thanks
Kalyan
Attachments:
string to 2D string array conversion.vi 19 KBHi Jim,
its simply superb...
how to get more info on these 'Regular Expressions', is there any KB (knowledge base) or tutorial available for the same.
I am not allergic to Kudos, in fact I love Kudos.
Make your LabVIEW experience more CONVENIENT. -
ORA-06502: numeric or value error: character to number conversion error
I met the following error when I ran Donald's PL/SQL function to_number_or_null. Could somebody here help me find the resolution? Thanks!
SQL> create or replace FUNCTION to_number_or_null (
2 aiv_number in varchar2 )
3 return number is
4 /*
5 to_number_or_null.fun
6 by Donald J. Bales on 12/15/2006
7 An errorless to_number( ) method
8 */
9 begin
10 return to_number(aiv_number);
11 exception
12 when INVALID_NUMBER then
13 return NULL;
14 end to_number_or_null;
15 /
Function created.
SQL> select to_number_or_null('A') from dual;
select to_number_or_null('A') from dual
ERROR at line 1:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "CAROL.TO_NUMBER_OR_NULL", line 10Only INVALID_NUMBER exception is handled and also VALUE_ERROR should be handeled. You can resolve it by handling VALUE_ERROR exception or by adding WHEN OTHERS as I did in following example.
SQL> create or replace FUNCTION to_number_or_null (
2 aiv_number in varchar2 )
3 return number is
4 /*
5 to_number_or_null.fun
6 by Donald J. Bales on 12/15/2006
7 An errorless to_number( ) method
8 */
9 begin
10 return to_number(aiv_number);
11 exception
12 when INVALID_NUMBER then
13 return NULL;
14 when OTHERS then
15 return null;
16 end to_number_or_null;
17 /
Function created.
SQL> select to_number_or_null('A') from dual;
TO_NUMBER_OR_NULL('A')
----------------------With kind regards
Krystian Zieja -
Return 2 values (string, number) multiple rows, from java stored function
I would like to return 2 values (String, number prefered but String, String will work) from a java stored function.
I was able to successfully return a varray of varchar2 values but I was wondering if it is possible to return 2 values by using a varray?
Is it even possible? I tried using combinations of types which included a varray of objects (with 2 attributes) or a type as table of objects but I couldn't figure out how in my java code to set these values. Also what would my java function return type be and what Oracle type would map to it?
Any help and examples or pointers would be great.
Thanks,
DennisThanks to all. I finally figured it out through all the pieces on the web.
Here is what worked for me. First create 2 oracle types. One object type to represent the "columns" I will pass back:
CREATE OR REPLACE TYPE COST_OBJ AS OBJECT (COST_NAME NVARCHAR2(50), COST_VALUE number ) NOT FINAL
note: make sure the "strings" are defined as NVARCHAR2 or Java will puke if it is just VARCHAR2.
Then create a table type to hold your objects defined as following:
CREATE OR REPLACE TYPE COST_OBJ_TABLE is table OF COST_OBJ
Then create the oracle stored function that is a wrapper to the java function:
CREATE OR REPLACE FUNCTION get_Costs(Name VARCHAR2, evalDate VARCHAR2, fuelCodeID NUMBER) return COST_OBJ_TABLE
is language java name
'com.costs.storedProcedures.Cost.getCosts(java.lang.String, java.lang.String, int) return oracle.sql.ARRAY'
Once that is done, Oracle is ready. The Java function looks something like this:
public ARRAY getCosts(String name, String evalDate, int fuelCodeID) {
DBAccess da = getDBAccess();
// get a handle on the connection
Connection conn = da.getConnection();
// The stuff that will be returned should be as type object array
// make it to the size of the number of fuelcomponents passed in
Object[] returnStuff = new Object[3];
// create the type of struct that is defined on the database
StructDescriptor structDesc =
StructDescriptor.createDescriptor("CY_UMAP.COST_OBJ", conn);
for (int i = 0; i < returnStuff .size(); i++) {
Object[] costValues = new Object[]{
"This is object " + i,
new Integer ( i ) };
STRUCT cost_obj = new STRUCT(structDesc, conn, costValues);
returnStuff[i] = cost_obj;
ArrayDescriptor x_ad = ArrayDescriptor.createDescriptor (
"CY_UMAP.COST_OBJ_TABLE", conn);
ARRAY x_array = new ARRAY(x_ad, conn, returnStuff);
return x_array;
I hope this helps others.
Dennis -
How to send really Chinese word, not the string "&# number " to web browser
Each Chinese word on page sending to web browser is translated to a string in form "&#<number>" by default, it's a problem when Chinese word is included in url. How to specify sending really Chinese word, not the string "&#<number>" to web browser?
Thanks that seems to make much more sense, still having some troubles though.
Ok so now the majority of it seems to be working and it seems to be sending the String just fine. And I'm having it send the String to the BufferedWriter "out" and then using the newLine() method to send a carriage return but the BufferedReader on "in" seems to not detect the carriage return.
I have it doing a readLine() so that (as I understand it) it should be blocking, waiting until an end of line character so I assume each call of newLine() should have it pick up something but a quick breakpoint shows that it never stops blocking on readLine().
I assume the connection is fine because the application running as server uses the socket object returned by the accept() method.
Is there something I've perhaps misunderstood about the BufferedReader's readLine() method?
Here's the new version of my netbeans project:
http://rapidshare.com/files/371224512/KerazehDood.rar
Also on a different line of questioning, I'm just wondering about socket convention.
I was thinking it'd be useful in a game similar to what I'm attempting to make to not only send player position information but also client keypress information, I was just wondering, if you're doing something like that would it be frowned upon to use two separate ports? I think it would make the implementation far more legible and easy to structure but wasn't sure if applications usually try to stick to only one port or not.
Thanks.
Edited by: ThePermster on Apr 2, 2010 10:54 AM
Maybe you are looking for
-
How to download payload from b2b_instancemessage view in Oracle b2b 10g
I am not able to extract message payload from B2B_INSTANCEMESSAGE VIEW. when i execute this query: select payload from b2b_instancemessage where documenttype like '%rsConfirmIncid%'; the output I get is "BLOB" I need the complete payload. can somebod
-
My Sound Blaster Live 5.1 Digital won't work with Vista
First off, I wasn't sure whether to put this in the vista or Sound Blaster form so sorry if this is the wrong place. Anyways. I got a new computer two days ago and just installed my old Sound Blaster li've 5. Digital (model SB0220) card into the new
-
Can i use JSF tags and HTML tages Together
i am trying to use html and JSf tages together. i hope it should owrk. but for me html tags are not working. can any one help me
-
*SELECT in BPC 7.0NW
Dear Experts, I am from 5.1 version. Now I am using 7.0NW version. I am trying to use *SELECT in my script logic but its not working...I am trying a simple code as below.. *WHEN ACCOUNT *IS <> "NoAcct" *SELECT(%INCACC%, "[ID]", "ACCOUNT", "ACCTY
-
IMG Customizations For ESS In ECC 6.0
Hi Gurus, I'm stuck with some IMG customization issues. I can see the Overview page and each area group pages for diff applications. Like Employee Search, Personal Information etc. But whenever i'm clicking on the links it is openning up a blank scre