Decimal separator so bad error
I use Apex 3.2Our data base and apex bodies are configured to use a decimal separator in numeric values (NLS_LANGUAGE = AMERICAN)
Many of our users are German and in Germany, they use a comma as a decimal separator.
Whenever they enter a comma instead of a period, I need to give an error on the page.
Currently in our page, we use
exception
when others then
if sqlcode=-6502
then
rollback;
:P9_ERROR:='Please use points as decimal separator';
else
raise;
end if;
: P9_ERROR is a hidden page and then element in the success of process message, we put & P9_ERROR.Is there a better way to do it.
The ust of error message displayed on the page and not on the error page
Thank you
Gus
Published by: Gus C 4 December 2012 12:02 AM
can't you simply say your validation
//set the validation type to Function returning error text
IF :PX_ITEM_NAME like '%,%' THEN
RETURN 'Please use points as decimal separator';
ELSE
RETURN NULL;
END IF;
Tags: Database
Similar Questions
-
Bug report - validation number in a table (comma as a decimal separator)
Hello
When a number is inserted with a comma as a decimal separator (my local context is Czech, but should be the same with Canadians or French https://docs.oracle.com/cd/E19455-01/806-0169/overview-9/index.html and the decimal in numeric keypad key produced by commas), comma is removed rather than get a good error message and the number is inserted in a form as there is no decimal point/comma comma at all. The built-in digital validation can be easily replaced by manual validation of PL/SQL like this
DECLARE v_ret_val BOOLEAN; v_tmp_num NUMBER; BEGIN v_tmp_num := to_number(:num_col); RETURN true; EXCEPTION WHEN OTHERS THEN RETURN false; END;
but it is just a workaround.
I created a unit test to https://apex.oracle.com/pls/apex
workspace: tests
user: supporter
PWD: supporter1234
Request 63101 - tab_form_bug
I don't want to be too greedy... But please, kindly check the dev team can someone also it I reported it here
?Thank you very much
Pavel
Hi Pavel,
If you leave the main language of your application, the English value, comma is correctly interpreted as thousands separator. I've updated your application and set the primary language to the Czech, and now he behaves as you would expect (see shared components, attributes of globalization). And certainly, we continue to worry about the tabular forms, they do not go far. Interactive grids provide much additional and new features that are not available with the tabular forms, tabular forms however continue to have a place in the APEX - similar to how there are cases of use for classic reports and interactive reports.
Kind regards
Marc -
ORA-01722: invalid number - when the last column has numbers that have a decimal separator
Here are examples of data-
FRT, 1.64, VAT, 23,36
FRT, 1.64, VAT, 23,36
When I try to convert 1.64 to_number everything is good, but when I do the same thing with 23,36 I get the following error
ORA-29913: error in executing ODCIEXTTABLEFETCH legend
ORA-01722: invalid number
ORA-06512: at "SYS." ORACLE_LOADER', line 52
I tried this query example
Select to_number (CONSIGNMENT_NET_VALUE) as Col1 of DUMP_EXT
Select to_number (CONSIGNMENT_NET_VALUE, '9999999999D' 99999', NLS_NUMERIC_CHARACTERS = ",". ") as Col1 DUMP_EXT-> 268906.1
make the same mistake - any help greatly appreciated.
T.
Srini
Try using:
RECORDS DELIMITED BY newline
Instead of:
RECORDS DELIMITED BY '\n'
on your table to create, in addition to just help to_number or to_number return with ' NLS_NUMERIC_CHARACTERS = ".," ' in your query, in the period before the comma as decimal separator comes before the grouping separator.
What is probably happening is that your return to the line of the system data come from different East of your new line on the system that you load in. You may need to experiment and
Select dump (consignment_net_value) in the dump_ext;
to determine what additional invisible characters, such as Chr (10) and Chr (13) can be added at the end of the number that you have to cut, so just using line feed does not work. This is why it only happens with the numbers at the end of the line.
Post edited by: BarbaraBoehmer
-
I think the problem was the misconfigured import filter.
You can change the decimal separator for each column in the last step of the configuration dialog box. Simply select the numeric column (data channel) in the data preview and select the good seprator for data in the upper part of the dialog box.
hope this helps
-
The locale-specific decimal separator in Fmt?
Is there a way to get the floating point numbers using the locale-specific decimal separator in the Fmt() function?
It seems that SetSystemAttribute will only change the separator of UI elements, as described in this thread. Call setlocale (LC_ALL, "") doesn't seem to work either.
Is this possible?
Thanks for the reply. I ended up just do a search / replace and permutation of every instance of Fmt() with sprintf_s(), which DOES pay attention to the setlocale() function.
-
I use Jdeveloper 11.1.2.3.0 I need the numbers to have a comma so as thousands separator and dot (.) as a decimal I tried to adjust es_ES and en_US locale in facesconfig
I use a < f: convertnumber pattern = "#0.00".
but this threshold does not work it ask for the comma as decimal separator!
Check out http://blog.olrichs.nl/2013/02/display-correct-symbol-in-front-of-your.html that should get you work.
Timo
-
The decimal separator in the model generator XML Word formatting
Hello
I am a model in the XML Editor, for a report of accounts receivable in the E-Business Suite. So I use MS Word with the Publisher Oracle XML model builder plug-in software component.
The data comes from the E-Business suite by using the comma as decimal separator. For example: 123,99
My goal is to have the period as the decimal separator. For example: 123.99
Does anyone know what code should I use to achieve this?
Thanks colinin the next time use appropriate forum - Forum: Editor of BI - BI Publisher
>
The data comes from the E-Business suite by using the comma as decimal separator. For example: 123,99
My goal is to have the period as the decimal separator. For example: 123.99
>
usewhere VAL is tag with 123,99
-
Decimal separator in the SELECT Clause
Hello
I have the following parameters of decimal number:
SQL > select value
2 from v$ nls_parameters
3 where parameter = "NLS_NUMERIC_CHARACTERS;
VALUE
----------------------------------------------------------------
,.
If I show a decimal number, I get a comma as decimal separator
SQL > select 10/100 double;
10/100
----------
1
But if I use a decimal separator in the SELECT clause, I get:
SQL > select 100 * 1.1 double;
100 * 1 1
---------- ----------
1 100
It does not work. But the use of a period as the decimal separator works:
SQL > select 1.1 * 100 double;
1.1 * 100
----------
110
Maybe it's something that I never had to deal with before, but I thought that the number format applied to results of sql, as well as the numbers you have used sql clauses.
Kind regards
Nestor BoscanHi, Nestor,
user594312 wrote:
... I thought that the number format applied to results of sql, as well as the numbers you have used sql clauses.No.; it applies to the results and it can affect implicit conversions, but it does not apply to the SQL code.
The period (or dot, '.') is the decimal separator in literals always digital. There is no way to change this.Think how confusing it would be if it applied to the SQL code. For example:
WHERE num_col IN (1,2)
We compare num_col values 1 or 2? He comes in, what happens if we wanted to do the opposite?
If you really want to use the comma as the decimal separator, you may have to use strings, not numbers, and it could be much less effective.
For example:SELECT 100 * TO_NUMBER ('1,1') -- This assumes your NLS settings are correct FROM dual;
Of course, the effectiveness will not be a problem when you select 1 row of double.
-
Trinidad - config.xml, number-grouping-separator and decimal separator
Hello
Depending on my location of the application, the numbers are formatted into 1.234,56
Now, I want numbers to shape US flavor: 1,234.56
Here's my content in the file config.xml - Trinity :
<? XML version = "1.0" encoding = "windows-1252"? >
< trinidad-config xmlns = "http://myfaces.apache.org/trinidad/config" >
mySkin < skin-family > < / skin-family >
< number-grouping-separator >, < / number-grouping-separator >
> decimal separator <. < / decimal separator >
< / Trinity-config >
The file above is declared in the file web.xml (although I'm not sure this is really necessary):
< context-param >
javax.faces.CONFIG_FILES < param-name > < / param-name >
/Web-INF/Trinidad-config.XML < param-value > < / param-value >
< / context-param >
And an example of digital input text:
< af:inputText value = "#{row.bindings.Salary.inputValue}" label = "#{bindings. EmployeesView3.hints.Salary.label}.
required = "#{bindings." EmployeesView3.hints.Salary.mandatory} "columns =" #{bindings. "." EmployeesView3.hints.Salary.displayWidth}.
maximumLength = "#{bindings." EmployeesView3.hints.Salary.precision}"shortDesc =" #{bindings. " EmployeesView3.hints.Salary.tooltip}.
ID = "it5" >
< f: validator binding="#{row.bindings.Salary.validator}"/ >
< af:convertNumber pattern = "#{bindings." EmployeesView3.hints.Salary.format}"/ >
< / af:inputText >
Where the model is defined at the level of the Entity object: EO employees > attribute salary > UI tips > Format: #, # 0.00
But it does not work. I don't know what I'm missing... Help, please!
JDev 11.1.1.3.0Marge,
A number of things I found after I played with him (very simple example: HR schema / table Employees / salary attribute):
(a) the docs are wrong - there should be trinidad-config. XML
(b) no matter what I did with the af: convertNumber and the Trinity-config-xml delimiters picked up from my locale
(c) until... I took the advice of of EO (type attribute set to "" format) and then things started working - even deleted the attribute of the af model: convertNumber did not help. So, remove the tips of the EO and put "#, # 0.00" in the attribute of the af model: convertNumber and everything is good. I dropped an e-mail to someone at Oracle to report the bug in the documentation as well as the apparent bug that conversion does not work correctly if there is a hint of control on the attribute. John
-
Hi all
I was wondering if there is a way to put the separator from ', 'to'. ', without having to change the language of the application.
I saw this thread:
where the language should be changed but y at - it another way?
I need to use the value of the digital item on search criteria, and it must have a decimal point, without getting the error number not valid.
Any help is appreciated,
CleoCleopatra wrote:
APEX version: 4.0
Don't know much about the NLS settings, this should be the case for my application.
For the entire application, try to use
begin execute immediate q'{alter session set nls_numeric_characters='.,'}'; end;
in the security of a virtual private database (VPD) attribute (Home > Application Builder > Application > shared components > change security attributes).
However, I am not clear about the exact nature of the obligation:
I need to use the value of the digital item on search criteria, and it must have a decimal point, without getting the error number not valid.
I think that if it is really needed, then you'll want to limit the scope of the parameters changed more NLS in order to avoid undesirable side effects.
-
Bad error message Image in Windows Photo Gallery
Need help a.s.a.p., please!A few months ago my Windows Photo Gallery has suddenly stopped working and a pop-up box is came (and is still). The TOP of the box says: WindowsPhotoGallery.exe - bad Image. INSIDE of the box, he said: c:\Program Files\Windows Photo Gallery\PhotoLibraryMain.dll isn't is either not designed to run on Windows or it contains an error. Try to install the program by using the original installation media or contact your system administrator or the provider of software for support.Well, I can't find the right disc to reinstall Photo library (can you tell me who would be?), and if I don't reinstall Windows Photo Gallery, will I lose my photos when I uninstall the one I have currently here? I don't want to lose them, because I have pictures of my old grandson of 4 days, a grandson age 9 months and tons of other pictures.Thanks for any help you can give me.Maybe the exclusive database is corrupted.
Read the following article.
Stops Windows Live Photo Gallery (944221)
answer or does not start
http://support.Microsoft.com/kb/944221/en-us
(according to version, database can be
Pictures.PD4, Pictures.pd5 or Pictures.pd6)When you rename the file will force Live Photo Gallery to create
a new database on the next launch file.Know that the gallery will be as it was the first time that you
open and some metadata and labels may be lost.More...
Your photos are not 'in' photo gallery... it accesses just
the files on your hard drive where they are saved...
probably your pictures folder.Try to go to... Start / images... and view photos.
There is a more recent version, now called Windows Live
Photo Gallery 2011. Might be interesting to try to install it.(FWIW... it's always a good idea to create a system)
Restore point before installing software or updates)Windows Live Gallery of photos and Movie Maker 2011
-
Hi all
I am change an annual report of the German.
I live in Australia.
My system runs OS X 10.10.2 and my CC from the Adobe Suite is English (or Australian, if that makes a difference in some libraries)
I need to create a group of column and bar charts.
The label next to a single column or bar is taken automatically distributed data.
The decimal in the propagation data separator is a. (full stop, or dot)
I need display a comma on the final graph. This is the standard in many European languages.
If I enter a comma in the distributed data refuses to Illustrator to draw a graph for this value.
How can I do this?
Concerning
Romano
Romano,
Your results seem to confirm my understanding.
Is that what this means that you can open the file in comma-State and close again without editing, then the client will get that (in other words a simple solution to the question)?
-
Hello
I would replace the separator of decimal point with a comma (",") instead of the current decimal point ('.) ')
This is why numbers now appear as 100,00 instead of the 100.00 that appears as a default.
How can this be achieved in 11.1.1.5.0?
Thank you
ABobiee_user_ab wrote:
HelloI would replace the separator of decimal point with a comma (",") instead of the current decimal point ('.) ')
This is why numbers now appear as 100,00 instead of the 100.00 that appears as a default.
How can this be achieved in 11.1.1.5.0?
Thank you
AB
Check out this link...
http://gerardnico.com/wiki/database/Oracle/nls_numeric_characters
-
actual number returned with the comma as decimal separator
Hello
I installed W7 CF9 using an Access database.
In a table, I have a monetary value of -488.7Windows is French, but I put the delimiter for the decimal AND currency values to dot instead of a comma.
If I get this error in the CF:
The value-488, 7 cannot be converted to number.
CF receives the value by a comma instead of a point.
-If I navigate on the table in Access, the value appears correctly with a point.
-If I change the column type in teTEXT instead of real or currency, the value is converted to text with a point, and there is no error in the CF.
Of course, a point in decimal conversion is made in another layer, but where?
I checked the ODBC connection, and found nothing.
Any idea?
> If you do a simple query and cfdump the result, do you have a point or a comma?
Yes, I want to.
But I finally found the problem.
The motion is produced by a trade UNION and in one of the sub selects, the column is set to '0' instead of 0. It launched a conversion of text to the same column in the following SELECTION, probably in the ODBC driver, and this conversion involves the use of a comma instead of a point. For some unknown reason, he follows the rule for the French because the version of Windows is French, but ignores the settings in Windows.
-
I get an Error Message for my printer HP C6180 age of 7 years: EVIL of CARTRIDGES... Use the introductory cartridges that were shipped with your device. Yes well! He is seven years old. These cartridges are long gone... and no one does... I mean that nobody has the answer on how to solve this problem. I confess that I used ink ink farm.com (good valve and it is working great int the past). HP said... because I did not use their ink it touch the print head. Totally unfair! Why you would design a unit fully operational to recognize ink is not original and then close. Oh... I remember... 101 economy... It's called Obsolecence of Design!
I spent $40,00 on the farm of ink... ink then went and has spent another $100 + on Original HP ink Sams Club (got Xl ink) and it still does not work. I called Hp, and although the technology was friendly and understanding... they have not a clue. You have to be kidding me. I went to Sams Club and bought a new HP 6700 Officejet for $114,00... it is up and works fine... but work once beautifully C6180 is now sitting in the trash... and I'm stuck with a value of $150.00 of ink unused... After spending a whole day, at this point leave it outside in this forum. Thank you HP. I really wouldn't buy another HP printer, but I'll let the lesson be: only use original ink manufacturing. ... I think that the cost of it is... A SCAM! JUST VENTILATION!
Hi Limodriver,
Glad to hear that you managed to Exchange unused old cartridges with new cartridges for the new printer.
Thank you for your update.
See you soon,.
Bryan
Maybe you are looking for
-
Oddity with Safari...
OK, so I was rummaging round under the hood this morning, trying to find a solution for a bug. I was happy that the changes I made had not been saved, that I had no permission to the account I was using. In any case, clearly I was not careful enough.
-
HP Pavilion P6000: Create the recovery disk
I went into 'All Programs\Recovery Manager' and clicked on "Creating recovery discs" The computer asks me "do allow you the following program to make changes to this computer? I clicked 'Yes', but nothing happened. Can anyone help?
-
Satellite T130 - how 300 Mbps of connection?
My Satellite T130 only connects to my Wireless N 150mbps. I have 2 other laptops that connect at 300mbps. How can I get the T130 to connect at 300mbps? Is he capable of 300mbps (the Realtek site suggests the chip RTL819SE is capable of 300mbps)?
-
Error loading lvdaq.dll
Hello forum of Discussion of LabView. I am currently using LabView 2009. My Research Director has tried to open the files inherited from Labview 7.1 on the more modern version, without success. After doing a little research, I found that I had to dow
-
Comparison of features to ensure the good motherboard is purchased
I have a Pavilion dv4-1145go with a motherboard 486724-001, which is dead. In searching the Internet, I saw several motherboards with the same model number, but that are advertised for use in another Pavilion models, such as 1020us-dv4, dv4-1125, etc