Range check for numeric values in varchar2 type column

SQL oracle 10g windows XP
I have a table which has column of type varchar2 e.g
create table osa_gms_mailbox(reg_address varchar2(60),bin_address varchar2(60));
let us insert some sample rows:
insert into osa_gms_mailbox values ('8000','8000');
insert into osa_gms_mailbox values ('9000','9000');
insert into osa_gms_mailbox values ('[email protected]','[email protected]');
If i try to run the query :
select reg_address from (
select reg_address from osa_gms_mailbox
MINUS
select reg_address from osa_gms_mailbox where
regexp_like(reg_address,'^[a-z]+|[A-Z]+$')) temp
where to_number(temp.reg_address) between 1000 and 10000;
or
select reg_address from (
select reg_address from osa_gms_mailbox
MINUS
select reg_address from osa_gms_mailbox where
regexp_like(reg_address,'^[a-z]+|[A-Z]+$'))
where to_number(reg_address) between 1000 and 10000;
it gives ORA-01722: invalid number .
how can i get the numeric comparision done for varchar2 field and exclude the rows which have atleast one alphabet (a-z,A-Z)
Thanks

Hi
Please check this sample , it may useful to you
/*Creating a Table*/
Create Table CHECKVARCHAR( CheckValue Varchar2(20) );
/* Inserting values in to the column with numbers and Strings */
Insert into CHECKVARCHAR Values ( 1000 );
Insert into CHECKVARCHAR values ( 2000 );
Insert into CHCEKVARCHAR values ( 10000 );
Insert into CHECKVARCHAR values ( 'Abc' );
Insert into CHECKVARCHAR values ( 'zyx' );
/*Here is the Query to avoid Invalid Number */
Select * from
( Select CheckValue
from Checkvarchar
where Ascii( Substr( CheckValue,1,1 ) ) not between 65 and 122 )
where CheckValue between 1000 and 10000;

Similar Messages

  • Checking for null value in arraylist

    Hi
    i have an excel file which i i am reading into an arraylist row by row but not necesarrily that all columns in the row mite be filled. So how do i check for null values in the array list.
    try
                        int cellCount = 0;
                        int emptyRow = 0;
                        HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));
                        HSSFSheet sheet = workbook.getSheetAt(0);
                        Iterator rows = sheet.rowIterator(); 
                        myRow = new ArrayList();
                        int r = 1;
                             while (rows.hasNext())
                                  System.out.println("Row # " + r);
                                  HSSFRow row = (HSSFRow) rows.next();
                                  Iterator cells = row.cellIterator();          
                                  cellCount = 0;
                                  boolean isValid = false;
                                  while (cells.hasNext())
                                       HSSFCell cell = (HSSFCell) cells.next();
                                       switch (cell.getCellType())
                                            case HSSFCell.CELL_TYPE_NUMERIC:
                                                 double num = cell.getNumericCellValue();     
                                                 DecimalFormat pattern = new DecimalFormat("###,###,###,###");     
                                                 NumberFormat testNumberFormat = NumberFormat.getNumberInstance();
                                                 String mob = testNumberFormat.format(num);               
                                                 Number n = null;
                                                 try
                                                      n = pattern.parse(mob);
                                                 catch ( ParseException e )
                                                      e.printStackTrace();
                                                 System.out.println(n);
                                                 myRow.add(n);                                             
                                                 //myRow.add(String.valueOf(cell.getNumericCellValue()).trim());
                                                 //System.out.println("numeric: " +cell.getNumericCellValue());
                                                 break;
                                            case HSSFCell.CELL_TYPE_STRING:
                                                 myRow.add(cell.getStringCellValue().trim());
                                                 System.out.println("string: " + cell.getStringCellValue().trim());
                                                 break;
                                            case HSSFCell.CELL_TYPE_BLANK:
                                                 myRow.add(" ");
                                                 System.out.println("add empty:");
                                                 break;
                                       } // end switch
                                       cellCount++;
                                  } // end while                    
                                  r++;
                             }// end while
                   } myRow is the arrayList i am adding the cells of the excel file to. I have checked for blank spaces in my coding so please help with how to check for the black spaces that has been added to my arraylist.
    I have tried checking by looping through the ArrayList and then checking for null values like this
    if(myRow.get(i)!=null)
      // do something
    // i have tried this also
    if(myRow.get(i)!="")
    //do something
    }Edited by: nb123 on Feb 3, 2008 11:23 PM

    From your post I see you are using a 3rd party package to access the Excel SpreadSheets, you will have to look in your API for you 3rd party package and see if there is a method that will identify a blank row, if there is and it does not work, then you have to take that problem up with them. I know this is a pain, but it is the price we pay for 3rd party object use.
    In the mean time, you can make a workaround by checking every column in your row and seeing if it is null, or perhaps even better: check and see if the trimmed value of each cell has a lenth of 0.

  • How does APEX check for null values in Text Fields on the forms?

    Hello all,
    How does APEX check for null values in Text Fields on the forms? This might sound trivial but I have a problem with a PL/SQL Validation that I have written.
    I have one select list (P108_CLUSTER_ID) and one Text field (P108_PRIVATE_IP). I made P108_CLUSTER_ID to return null value when nothing is selected and assumed P108_PRIVATE_IP to return null value too when nothign is entered in the text field.
    All that I need is to validate if P108_PRIVATE_IP is entered when a P108_CLUSTER_ID is selected. i.e it is mandatory to enter Private IP when a cluster is seelcted and following is my Pl/SQL code
    Declare
    v_valid boolean;
    Begin
    IF :P108_CLUSTER_ID is NULL and :P108_PRIVATE_IP is NULL THEN
    v_valid := TRUE;
    ELSIF :P108_CLUSTER_ID is NOT NULL and :P108_PRIVATE_IP is NOT NULL THEN
    v_valid := TRUE;
    ELSIF :P108_CLUSTER_ID is NOT NULL and :P108_PRIVATE_IP is NULL THEN
    v_valid := FALSE;
    ELSIF :P108_CLUSTER_ID is NULL and :P108_PRIVATE_IP is NOT NULL THEN
    v_valid := FALSE;
    END IF;
    return v_valid;
    END;
    My problem is it is returning FALSE for all the cases.It works fine in SQL Command though..When I tried to Debug and use Firebug, I found that Text fields are not stored a null by default but as empty strings "" . Now I tried modifying my PL/SQL to check Private_IP against an empty string. But doesn't help. Can someone please tell me how I need to proceed.
    Thanks

    See SQL report for LIKE SEARCH I have just explained how Select list return value works..
    Cheers,
    Hari

  • How to check for null values in bpel?? Please Help! very urgent!!!

    Hello Guys,
    I have a problem. I have an external webservice to which I have to post my request. My task is to create an Webservice and Service Assembly to which others would post request and get response. I have to create SA to deploy onto the bus.
    The problem is that there are optional elements in the request and response xsd's. In the Response sometimes certain feilds may come or they may not. for Example:- my response could contain a tag like this <firstName></firstName>
    I have to copy these feilds in my bpel process from one variable to another.(like in the mapper).
    My Question is , Is there any way in BPEL process or BPEL mapper where I could Check for null values in the request or response???
    Your inputs would be very helpful.
    Thanks
    Rajesh

    Thanks for replying man :)
    Ok I will be more clear.
    Here is a snippet of one of the xsd's that I am using.
    <xs:element name="returnUrl" nillable="false" minOccurs="0">
                        <xs:annotation>
                             <xs:documentation>Partner specifies the return URL to which responses need to be sent to, in case of
    Async message model.
    </xs:documentation>
                        </xs:annotation>
                        <xs:simpleType>
                             <xs:restriction base="xs:anyURI">
                                  <xs:maxLength value="300"/>
                                  <xs:whiteSpace value="collapse"/>
                             </xs:restriction>
                        </xs:simpleType>
                   </xs:element>
    This means that the return URL field can be there or it may not be there. But if it is there it cant be null because nillable=false. But the whole <returnURL> </returnURL> can be there or it may not be there because minOccurs=0.
    My requirement is , if returnURL is there in the response with a value, then in my BPEL mapper I should map it else I should not map it.
    Thats the issue.
    and Yes kiran, the node be non-existant.
    So can you please help me with this.
    Thanks
    Rajesh

  • Display comma for numeric values

    Hi,
    I want to display comma for numeric values.I know we can use strlen and concatenate, but any one can give me an example.
    Ex: 1,234  and 12,234 , 1,22,500  ( iam expecting)
    Thanks,
    Veeru

    it depends on ur data...
    if it is currency then u can use
    WRITE.... CURRENCY...
    if it is qty then u can use
    WRITE....UNIT....
    or u simply pass it to a packed field and it will take the default decimal settings of the user profile...
    Reward points if helpful

  • To develop an error checker for consecutive values

    Thanks Doug. Your answer has given me further insight into the problem.
    However, I was wondering if it is possible to make an error checker for consecutive values of a particular variable.
    That is, the first value and second value might be 100 and 100.5 respectively, but the third value might be 110, which is a wrong value. How do I discard the 110 point from being plotted?
    Thanks.
    Choy

    Really difficult. How do you know the first two values aren't errors and
    the third one is correct. If you're getting these sorts of values fromn
    your A-D hardware, I'd suggest fixing the problem at the source.
    Regards,
    Alf Katz,
    [email protected]
    "leon2001" wrote in message
    news:[email protected]..
    > Thanks Doug. Your answer has given me further insight into the
    > problem.
    >
    > However, I was wondering if it is possible to make an error checker
    > for consecutive values of a particular variable.
    >
    > That is, the first value and second value might be 100 and 100.5
    > respectively, but the third value might be 110, which is a wrong
    > value. How do I discard the 110 point from being plotted?
    >
    > Thanks.
    >
    >
    > Choy

  • How to check for null value of output parameter?

    Hi guys, I get a test procedure with 2 output parameters and do nothing:
    CREATE OR REPLACE PACKAGE BODY p_parameters_test AS
      PROCEDURE p_null_output_basetype(p1 OUT NUMBER,p2 OUT VARCHAR2)
      AS
      BEGIN
        DBMS_OUTPUT.PUT_LINE('DO NOTHING');
      END p_null_output_basetype;
    END;And I have below C# code:
    cmd.CommandText = "p_parameters_test.p_null_output_basetype";
    OracleParameter p1 = new OracleParameter("p1", OracleDbType.Decimal, System.Data.ParameterDirection.Output);
    OracleParameter p2 = new OracleParameter("p2", OracleDbType.Varchar2, System.Data.ParameterDirection.Output);
    cmd.Parameters.Add(p1);
    cmd.Parameters.Add(p2);
    try
        conn.Open();
        cmd.ExecuteNonQuery();
        if (p1.Value==null)
            Console.WriteLine("p1.Value==null");
        else if (Convert.IsDBNull(p1.Value))
            Console.WriteLine("Convert.IsDBNull(p1.Value)");
        else
            Console.WriteLine("p1 else "+p1.Value);
        if (p2.Value==null)
            Console.WriteLine("p2.Value==null");
        else if (Convert.IsDBNull(p2.Value))
            Console.WriteLine("Convert.IsDBNull(p2.Value)");
        else
            Console.WriteLine("p2 else "+p2.Value);
        Console.WriteLine("finished");
    catch......The output of it is:
    p1 else null
    p2 else null
    Does anyone have any idea why it always goes to the 'else' of the condition-branching, and how can I check if the output parameter is null?
    Thanks in advance.

    Morven... I ran into similar problems. Maybe you've found a solution of your own by now, but here's what I've learned...
    The Value property of output parameters, like p1 and p2 in your code, actually varies, according to (I think) the OracleDbType of the parameter. You've got OracleDbType.Decimal for p1 and OracleDbType.Varchar2 for p2. These look about right, since they match the parameter types in your actual stored procedure.
    After cmd.ExecuteNonQuery() executes, the respective Value properties of p1 and p2 are actually of different types. For p1, it's going to be "OracleDecimal" and for p2 it's "OracleString". Keep in miind that these are the types of the Value property of the OracleParameter objects, not the OracleParameter objects themselves.
    OracleDecimal and OracleString (and some other types like OracleDate, etc.) have an "IsNull" property you can use if you cast the Value property to its runtime type...
    if ((OracleDecimal)cmd.Parameters["p1"].Value).IsNull) { …do something… }
    else { …do something else… }
    Or maybe something like this...
    Decimal p1val = ((OracleDecimal)cmd.Parameters["p1"].Value).IsNull ? 0 : ((OracleDecimal)cmd.Parameters["AVG_SALARY"].Value).Value;
    I'll admit that expressions like this: ((OracleDecimal)cmd.Parameters["AVG_SALARY"].Value).Value look a little weird. But the "Value" of the "OracleDecimal" property is a regular .NET decimal type (System.Decimal). So, it's a "Value" of the "Value" property of the OracleParameter class.
    Even when the stored procedure returns a null, the Value property is still populated. In the case of p1, it's populated with an OracleDecimal object (actually a struct) where IsNull is true. That's why "p1.Value==null" tests false.
    From what I can see, OracleDecimal, OracleString, etc. will never be typed as DbNull, or DBNull.Value. So, that would be why Convert.IsDBNull(p1.Value)) always returns false. btw, it appears that these are Value types. That would suggest that coding something like like this, should be avoided…
    OracleString p2val = ((OracleString)cmd.Parameters["p2"].Value;
    if (p2val.IsNull) { …do something… }
    else { …do something else… }
    By assigning the value to another variable, you’d be actually creating an entire copy of the OracleString structure, which is pointless.
    I hope that helps
    Edited by: 897674 on Jan 3, 2012 10:44 AM
    Edited by: 897674 on Jan 3, 2012 10:46 AM

  • Range selection for Fix value variable in BPS

    Hi,
       When create vaiable, there is a fix value variable, under selection condition, we can choose either multiple single value or range, however if we choose the range, let say mtareial number from 1 to 100, when we run the BPS application through UPSPL, the value for material variable will be populated with value 1 to 100, when I try to change the value to a single value,it's not allowed me to change,  while the user define value type, we can change the value, Is this supposed to be?

    JW,
    BPS variables does not allow the choice of multiple single values, you can choose a single value OR a range of values. This issues has been brought up with SAP Development.
    If you need single values or a complete range of values, you can add each single value as a fixed value and the range as another fixed value that can be selected. You can select each single value individually or the whole range (or any subranges you specified) but not multiple selections of single values.
    In user definted variable if you check input allowed by users, you can add some values and the users can add more but then they could potentially go into material numbers they should not get access too.
    Hope this helps,
    Mary

  • Checking for different values with single var name.

    Hi,
    i have a variable NAME which should not take 5 different values.
    i want to check NAME againist these 5 values at run time. is there any way to check NAME againist these 5 values like NAME in X, where x contains these 5 values.
    could someone let me know the syntax and approach to do that.
    your help would be appreciated.
    thanks,
    kranthi.
    Message was edited by: kranthi kumar
    Message was edited by: kranthi kumar

    Hi Kranthi
    If you want a method to set this property persistently via definitions made in DDIC, I do not know any way. If the values that the parameter can take are definite, then you can set up a check table.
    Otherwise, one should achieve this programatically.
    i.
       IF name = <i><prohibited_val1></i> OR
          name = <i><prohibited_val2></i> OR
          name = <i><prohibited_val3></i> OR
          name = <i><prohibited_val4></i> OR
          name = <i><prohibited_val5></i> .
    *-- The rule is broken
       ENDIF .
    ii. Define a range and check with it.
    TABLES mytable .
    RANGES grn_namepval FOR mytable-name .
    *-- Begin of block A
    CLEAR grn_namepval .
    grn_namepval-sign = 'I' .
    grn_namepval-option = 'EQ' .
    grn_namepval-low = <i><prohibited_val1></i> .
    APPEND grn_namepval .
    *-- End of block A
    *--Do block A for each prohibited value
    IF name IN grn_name_pval .
    *--Your rule is broken
    ENDIF .
    Regards
    *--Serdar <a href="https://www.sdn.sap.com:443http://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.sdnbusinesscard?u=qbk%2bsag%2bjiw%3d">[ BC ]</a>

  • Built-in functions to check for numeric or string

    Hi,
    Is there any built-in functions in java for checking if the value is numeric or is a string ?
    tks & rdgs

    Hi,
    I have a string og such value "1 testing" that i will be using stringtokenzier to get the individual parts but i do not want to return "1" but only "testing" so i'll need to check whether if the parts can be converted to numeric if so , then i don't return else return the value
    tks & rdgs

  • Wildcard search for numeric values using select ?

    Hi,
    I want do wildcard search for numeric fields of the table.
    For charcter/string i have used - select * from XX_TABLE where param1 like 'SS%'. But this query doesnt work when para1 is numeric. Please let me know first whether this is possible ? if yes how to achieve it ?
    Thanks in advance,
    Shrinivas

    Hi Jack,
    The numeric field is of  8 digits, so when i give search critera as '66', it should return values 66000000, 660000, 6600 etc. so i was not able to give between some range. I also tried storing all these values in internal table and the segregate the values it contains '66*'. This worked well but requires lot of coding effort.Please suggest if you guys have any better method ?
    Thanks,
    Shrinivas

  • Authorization check  for posting a specified movement type on certain plant

    <h5>Iu2019m posting goods movements using BAPI_GOODSMVT_CREATE, I have to check If the user has authorities for posting for a specified movement type on certain plant.
    How do I implement it, do I need to create a authorization object with ACTVT, WERKS and BWART, what will be value of ACTVT in this case?
    Or is there any other way through which the BAPI can automatically check for authorization.</h5>

    Just to bring to your notice that authorization check is done by the BAPI. Please check the function module.
    AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
                  ID 'ACTVT' FIELD '03'
                  ID 'WERKS' FIELD I_MSEG-WERKS.
         AUTHORITY-CHECK OBJECT 'M_MSEG_BMB'
                  ID 'ACTVT' FIELD '03'
                  ID 'BWART' FIELD I_MSEG-BWART.
    Regards,
    Lalit MOhan Gupta

  • Check for NULL value (Recordset field)

    Hi y'all...
    A little question, so just for the weekend...
    I've a query that returns 4 fields, the fisrt three always containing data, and the last one an integer, or NULL. If I get the value with <i>rs.Fields.Item(3).Value.ToString();</i> it always contains an integer. The NULL values are always converted to '0'.
    How can I check if it is a NULL value?

    Okey, found a workaround, using the SQL function ISNULL()...
    SELECT ISNULL(U_MyVar, 'null_value') FROM [@MyTable]
    Now I can check if the value has the value <i>"null_value"</i>. If so, that field was <i>null</i>

  • How to check non-numeric value in a field

    Hi all,
    I have a field 'MVALUE'. HOw can I check if I have a non-numeric value in my field. Let us say if I have a value '<25' in this field. How can I check if the value in this field is non-numeric. The field MVALUE is of CHAR datatype.
    Please help. Waiting.........

    Might have to add a space in the string...
    if not mvalue co ' 0123456789'.
    * error
    endif.
    if you allow decimals and commas...
    if not mvalue co ' .,0123456789'.
    * error
    endif.

  • Searching for numeric values in a text field / SQL Server

    Hi all,
    here's a problem that I've been trying to solve for several days: I try to select rows from an MS SQL Server via JDBC that contain a certain numeric value at a certain position in a long varchar field.
    I'm using queries like
    select * from table where substring(field_1, 37, 7) like '1011234';Those queries always return an empty ResultSet. If I use the same queries in WinSQL, I get correct results (several rows).
    The application code is working in principle; if I search for a text instead of a numeric value, for example select * from table where substring(field_1, 4, 5) like 'Paper'; , I get a complete ResultSet.
    I've tried many variations (= instead of like, search in the entire field (without substring but with like '%1011234%'), with or without ', and more), but that didn't change anything.
    It's also most probably not caused by the JDBC driver; I have tried JTDS first, and then the MS driver (newest versions) - no difference.
    One idea was that the sort order is not correct, tried some COLLATE settings, but that didn't help so far. In this context I'd like to know how to determine the collation sequence of a certain column.
    Another thing I tried was using CAST, for example SELECT * FROM table WHERE CAST(SUBSTRING(field_1, 37, 7) as bigint) = CAST('1011234' as bigint); or SELECT * FROM table WHERE CAST(SUBSTRING(field_1, 37, 7) as bigint) = CAST(1011234 as bigint);, but that didn't help either.
    Some facts:
    Server: Microsoft SQL Server, version 09.00.2047
    Driver in WinSQL: SQLSRV32.DLL, version 03.85.1117
    JDBC-Driver:
    - JTDS, version 1.2
    - Microsoft SQL Server 2005 JDBC Driver, Version 1.2
    JVM: jre1.5.0_11
    I didn't find anything on Google, or in this forum, or other forums. I really hope someone here can help me. Thanks in advance!
    Best regards,
    Uica

    Your note suggests to me that this is a coding problem, not a JDBC or SQL problem unless you are hitting a bug in the SQL Server JDBC driver. Others may have ideas from what you have written, but I think it would be helpful to see the actual code that you are executing that does not bring back the results that you are expecting (don't forgot to use code tags to format your code correctly).
    It might also be helpful to execute a query (from within your Java code) to ensure that you are connecting to the right database, accessing the correct table and that your substring is using the correct offset. The query would look something like this (and then of course display the list of results):
    SELECT substring(field_1, 37, 7) from table

Maybe you are looking for

  • Urgent:Report in Excel format

    Hi, Iam trying to send the report output to a comma delimited textfile and then openeing this text file in Excel. When I do this using "DELIMITED" the column heading is repeating for each row. And We don't have the patch installed for using "Delimite

  • Using a MacBook and saving my neck at the same time

    I recently bought a MacBook Air with a 13" screen. It is my primary computer. I write a lot as part of my job, and I do a lot of this writing at home. This new MacBook is great, but it is destroying my neck. To get my head level with the screen, I sl

  • Keynote 6.0 seems to break LaTeXiT: workarounds?

    I use LaTeXiT to place equations in my Keynote presentations. In Keynote 6.0, I can still copy equations from LaTeXiT into Keynote, but I can't copy equations from Keynote back into LaTeXiT. Does anyone know of a workaround?

  • Error when I change UNION to UNION ALL

    Hi, In the SQL below, I have a union in which I dont care about duplicates (in fact I know there wont be any). Hence, I want to avoid any overhead of sorting and checking for same, by replacing it with UNION ALL. The SQL runs fine with UNION, but com

  • Compare PDF files.

    Question: Is it possible to enumerate objects on the PDF page and get back coordinates of each object? (I believe, we only have tables/texts/images) Or, maybe someone can give me advice how to solve the problem below in a different way? I looked into