Oracle Preference to Data Types

Hi,
Why Oracle give preference to number when stored as varchar2
<For Example> I store a number in a Varchar2 type Column & then i do Order by that column ... than why & ho do it give preference to First -- Alphanumeric, then Second - Numeric & then .. Pure Alphabets... ..????

AJ.M wrote:
Example
SELECT * FROM test_order
     ID     NAME
     1     dafdas
     2     sdf
     3     3421
     4     fdss232
     5     323gdfs
This is in the sequence in which i have entered data.
SELECT * FROM test_order ORDER BY 2
     ID     NAME
     5     323gdfs
     3     3421
     1     dafdas
     4     fdss232
     2     sdf
This is in Sorted Order .... Now i want to know why & how did oracle gave preference to alphanumeric, then numeric & than complete alphabets32 is less than 34
3 is less the d
d is less than f
f is less than s
order has nothing to do with remaining characters in the strings
Dec Hex    Dec Hex    Dec Hex  Dec Hex  Dec Hex  Dec Hex   Dec Hex   Dec Hex 
  0 00 NUL  16 10 DLE  32 20    48 30 0  64 40 @  80 50 P   96 60 `  112 70 p
  1 01 SOH  17 11 DC1  33 21 !  49 31 1  65 41 A  81 51 Q   97 61 a  113 71 q
  2 02 STX  18 12 DC2  34 22 "  50 32 2  66 42 B  82 52 R   98 62 b  114 72 r
  3 03 ETX  19 13 DC3  35 23 #  51 33 3  67 43 C  83 53 S   99 63 c  115 73 s
  4 04 EOT  20 14 DC4  36 24 $  52 34 4  68 44 D  84 54 T  100 64 d  116 74 t
  5 05 ENQ  21 15 NAK  37 25 %  53 35 5  69 45 E  85 55 U  101 65 e  117 75 u
  6 06 ACK  22 16 SYN  38 26 &  54 36 6  70 46 F  86 56 V  102 66 f  118 76 v
  7 07 BEL  23 17 ETB  39 27 '  55 37 7  71 47 G  87 57 W  103 67 g  119 77 w
  8 08 BS   24 18 CAN  40 28 (  56 38 8  72 48 H  88 58 X  104 68 h  120 78 x
  9 09 HT   25 19 EM   41 29 )  57 39 9  73 49 I  89 59 Y  105 69 i  121 79 y
10 0A LF   26 1A SUB  42 2A *  58 3A :  74 4A J  90 5A Z  106 6A j  122 7A z
11 0B VT   27 1B ESC  43 2B +  59 3B ;  75 4B K  91 5B [  107 6B k  123 7B {
12 0C FF   28 1C FS   44 2C ,  60 3C <  76 4C L  92 5C \  108 6C l  124 7C |
13 0D CR   29 1D GS   45 2D -  61 3D =  77 4D M  93 5D ]  109 6D m  125 7D }
14 0E SO   30 1E RS   46 2E .  62 3E >  78 4E N  94 5E ^  110 6E n  126 7E ~
15 0F SI   31 1F US   47 2F /  63 3F ?  79 4F O  95 5F _  111 6F o  127 7F DEL

Similar Messages

  • Issue with Oracle LONG RAW data type

    Hi All,
    I am facing some issues with Oracle LONG RAW DATA Type.
    We are using Oracle 9IR2 Database.
    I got a table having LONG RAW column and I need to transfer the same into another table having LONG RAW column.
    When I tried using INSERT INTO SELECT * command (or) CREATE TABLE as select * , it is throwing ORA-00997: illegal use of LONG datatype.
    I have gone through some docs and found we should not use LONG RAW using these operations.
    So I did some basic PLSQL block given below and I was able to insert most of the records. But records where the LONG RAW file is like 7O kb, the inserting is faliling.
    I tried to convert LONG RAW to BLOB and again for the record where the LONG RAW is big in size I am getting (ORA-06502: PL/SQL: numeric or value error) error.
    Appreciate if anyone can help me out here.
    DECLARE
    Y LONG RAW;
    BEGIN
    FOR REC IN (SELECT * FROM TRU_INT.TERRITORY WHERE TERRITORYSEQ=488480 ORDER BY TERRITORYSEQ ) LOOP
    INSERT INTO TRU_CMP.TERRITORY
    BUSINESSUNITSEQ, COMPELEMENTLIFETIMEID, COMPONENTIMAGE, DESCRIPTION, ENDPERIOD, GENERATION, NAME, STARTPERIOD, TERRITORYSEQ
    VALUES
    REC.BUSINESSUNITSEQ, REC.COMPELEMENTLIFETIMEID, REC.COMPONENTIMAGE, REC.DESCRIPTION, REC.ENDPERIOD, REC.GENERATION, REC.NAME,
    REC.STARTPERIOD, REC.TERRITORYSEQ
    END LOOP;
    END;
    /

    Maddy wrote:
    Hi All,
    I am facing some issues with Oracle LONG RAW DATA Type.
    We are using Oracle 9IR2 Database.
    I got a table having LONG RAW column and I need to transfer the same into another table having LONG RAW column.
    When I tried using INSERT INTO SELECT * command (or) CREATE TABLE as select * , it is throwing ORA-00997: illegal use of LONG datatype.
    I have gone through some docs and found we should not use LONG RAW using these operations.
    So I did some basic PLSQL block given below and I was able to insert most of the records. But records where the LONG RAW file is like 7O kb, the inserting is faliling.
    I tried to convert LONG RAW to BLOB and again for the record where the LONG RAW is big in size I am getting (ORA-06502: PL/SQL: numeric or value error) error.
    Appreciate if anyone can help me out here.
    DECLARE
    Y LONG RAW;
    BEGIN
    FOR REC IN (SELECT * FROM TRU_INT.TERRITORY WHERE TERRITORYSEQ=488480 ORDER BY TERRITORYSEQ ) LOOP
    INSERT INTO TRU_CMP.TERRITORY
    BUSINESSUNITSEQ, COMPELEMENTLIFETIMEID, COMPONENTIMAGE, DESCRIPTION, ENDPERIOD, GENERATION, NAME, STARTPERIOD, TERRITORYSEQ
    VALUES
    REC.BUSINESSUNITSEQ, REC.COMPELEMENTLIFETIMEID, REC.COMPONENTIMAGE, REC.DESCRIPTION, REC.ENDPERIOD, REC.GENERATION, REC.NAME,
    REC.STARTPERIOD, REC.TERRITORYSEQ
    END LOOP;
    END;
    /below might work
    12:06:23 SQL> help copy
    COPY
    Copies data from a query to a table in the same or another
    database. COPY supports CHAR, DATE, LONG, NUMBER and VARCHAR2.
    COPY {FROM database | TO database | FROM database TO database}
                {APPEND|CREATE|INSERT|REPLACE} destination_table
                [(column, column, column, ...)] USING query
    where database has the following syntax:
         username[/password]@connect_identifier

  • "[Oracle][ODBC]Restricted data type attribute violation

    Hi,
    I have a program that use the database object,TQuery in Borland C++ Builder 5 to access information on an Oracle8i table. The program was working fine until I updated the Oracle8i ODBC driver from 8.1.5 to 8.1.6.
    I am getting the error :
    "[Oracle][ODBC]Restricted data type attribute violation."
    I can't see what I have done wrong with the SQL statement in the query as it is only a select * from table statement. Can anyone help me with this ? Thank in advance.
    C.M.

    I think I had found what is causing the problem. It looks like the latest Oracle ODBC driver doesn't like any table that
    consists of any 2 fields of type NUMBER but with 1 of them having
    NOT NULL. >example : >Name Null? Type>-------- --------
    ----------------- NO1 NUMBER>NO2 NOT NULL NUMBER>I think this is
    a bug. >null
    I am not sure what you mean by the statement
    "the latest Oracle ODBC driver doesn't like any table that
    consists of any 2 fields of type NUMBER but with 1 of them having
    NOT NULL"
    Do you mean there cannot be two not null number columns in a
    table witht he latest Oracle ODBC driver.
    I am running into the same problem as you did. I am getting a
    restricted type violation, and have isolated the column and it is
    a number(x,y). I have the the Oracle Client 8.01.06.00 driver
    and I have PowerBuilder8.0 as the GUI.
    Any help would be much appreciated,
    Thanks in advance,
    Khanh

  • How to migrate SQL Server image data type to Oracle 8 BLOB data type?

    Hi,
    I have to migrate data from sql server to Oracle 10 g.
    I am unable to migrate image data type from sql server to blob data type in oracle.
    Iam using Oracle Heterogenous Services to migrate the data,Using Merge statement and database link.
    I am getting the following error-
    ERROR at line 7:
    ORA-00932: inconsistent datatypes: expected BLOB got LONG BINARY
    Can any one suggest me how to migrate Image datatype to BLOB???

    Hi you might want to post your question in General Forum.
    General Database Discussions
    There's very few users visit this forum.

  • Oracle/java timestamp data type error.. please help

    Im having trouble with a SQL query of mine. Im trying to get a timestamp using JDBC from an oracle database however i get the following error:
    java.sql.SQLException: ORA-00932: inconsistent datatypes: expected %s got %s
    Now when i put the java.util.timestamp into the DB it appears to change.
    When I printout the value of the timestamp in my console it prints the following:
    07-06-26 17:28:09.414
    When i check the value from SQL PLUS it gives me this value
    07-06-26 17:28:09,000000
    Does anyone have any idea why this happens? and more importantly how I can retrieve the timestamp again.
    Im using BEA workshop which means i dont have any means of manipulating the data before presenting to the frontend.
    The database is Oracle 9.2.0.1

    user582245,
    Please provide the following:
    1. Entire error message and stack trace you are getting.
    2. Part of your code where the error occurs.
    3. JDK version you are using.
    4. Oracle data-type of the problematic column.
    Good Luck,
    Avi.

  • Oracle to ODBC data type mapping

    Hi all.
    I am currently using an EasySoft ODBC driver to connect to 10g. This gives me the ability to map oracle data types to ODBC:
    0 NUMBER <= 4 digits SQL_SMALLINT
    NUMBER <= 9 digits SQL_INTEGER
    NUMBER <= 19 digits SQL_BIGINT
    NUMBER = n digits SQL_NUMERIC
    NUMBER = n,m digits SQL_NUMERIC
    1 NUMBER <= 4 digits SQL_SMALLINT
    NUMBER <= 9 digits SQL_INTEGER
    NUMBER = n digits SQL_DOUBLE
    NUMBER = n,m digits SQL_DOUBLE
    2 NUMBER <= 4 digits SQL_SMALLINT
    NUMBER = n digits SQL_INTEGER
    NUMBER <= 19 digits SQL_BIGINT
    NUMBER n,m digits SQL_DOUBLE
    I would rather use the Oracle ODBC driver but I am unsure how (read if) I can get these values mapped?
    Any help would be much appreciated.

    Hi,
    Could you re-run with CQLProcessor category set to DEBUG?
    Which version of OCEP is it?
    Thanks,

  • How to Create a Table in Oracle with XML data type.

    Dear ALL,
    What are the requirements for creating a table with xml datatype in Oracle: The steps would help very much to know the scripting of the table and how to query and either insert/update and remove data from that table.
    Any help, direction, advise would be highly appreciated.
    Thanks.

    Reffer to this Note.243554.1.
    In a nut shell you will need to run catqm.sql

  • Using oracle.sql.BLOB data type in Java Class to pass in a Blob

    All,
    I'm trying to pass in a BLOB from PL/SQL to a Java Class, but the BLOB isn't passed correctly.
    When I check the length of the BLOB in PL/SQL its different from the length of the BLOB in java.
    I'm using DB 11g and the ojdbc5.jar file in my java classes.
    The java function uses the oracle.sql.BLOB type to get the parameter.
    The java class is loaded into the DB and called via a PL/SQL function.
    Kind regards,
    Nathalie

    The question is indeed a little ambigious defined ;o)
    When I pass the BLOB to the java method and invoke BLOB.getBytes() and then get the length of the BLOB in java the length of the BLOB is bigger than in PL/SQL.
    When I use the method 'getBinaryStream' and write this to a buffer, the code works.
    I will log a tar regarding the getBytes()-method to ask for more detailed information regarding the methods provided using the JDBC Drivers.
    Kind regards,
    Nathalie

  • How to configure oracle 8.1.6, 8.1.7 for recognizing float data type by  ODBC

    I know oracle recognizes float data type into the tables, and exists a parameter in the initialization parameters named NLS_NUMERIC_CHARACTER that permits to us change the presentation format. I did it, and into the server pc now it shows me '.' as a decimal point and ',' as a group separator. So, how can i do for the clients recognize the same float data type format. Which file i have to modify, or always i have to execute the instruction: alter session set NLS_NUMERIC_CHARACTERS = ".," in every client machine?
    thanks
    aldemar

    According to the National Language Support Guide, available from <http://tahiti.oracle.com>, you should be able to change the value of NLS_NUMERIC_CHARACTERS in the init.ora file for the database and have that carry across to all sessions.
    Justin

  • UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I

    제품 : SQL*PLUS
    작성날짜 : 2001-08-01
    UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I
    ========================================================
    PURPOSE
    Oracle 9i 에서 소개되는 새로운 datetime data type 에 대해 소개한다.
    Explanation
    Example
    1. Datetime Datatypes
    1) TIMESTAMP
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND
    2) TIMESTAMP WITH TIME ZONE
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND/
    TIMEZONE_HOUR/TIMEZONE_MINUTE( +09:00 )
    or TIMEZONE_REGION( Asia/Seoul )
    3) TIMESTAMP WITH LOCAL TIME ZONE
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND
    4) TIME WITH TIME ZONE
    : HOUR/MINUTE/SECOND/TIMEZONE_HOUR/TIMEZONE_MINUTE
    2. Datetime Fields
    1) YEAR/MONTH/DAY/HOUR/MINUTE
    2) SECOND(00 to 59.9(N) is precision) : Range 0 to 9, default is 6
    3) TIMEZONE_HOUR : -12 to 13
    4) TIMEZONE_MINUTE : 00 to 59
    5) TIMEZONE_REGION : Listed in v$timezone_names
    3. DATE 와 TIMESTAMP 와의 차이점
    SQL> select hiredate from emp;
    HIREDATE
    17-DEC-80
    20-FEB-81
    SQL> alter table employees modify hiredate timestamp;
    SQL> select hiredate from employees;
    HIREDATE
    17-DEC-80 12.00.00.000000 AM
    20-FEB-81 12.00.00.000000 AM
    단, 해당 Column 에 Data 가 있다면 DATE/TIMESTAMP -> TIMESTAMP WITH
    TIME ZONE 으로 Convert 할 수 없다.
    SQL> alter table employees modify hiredate timestamp with time zone;
    alter table employees modify hiredate timestamp with time zone
    ERROR at line 1:
    ORA-01439: column to be modified must be empty to change datatype
    4. TIMESTAMP WITH TIME ZONE Datatype
    TIMESTAMP '2001-05-24 10:00:00 +09:00'
    TIMESTAMP '2001-05-24 10:00:00 Asia/Seoul'
    TIMESTAMP '2001-05-24 10:00:00 KST'
    5. TIMESTAMP WITH LOCAL TIME ZONE Datatype
    SQL> create table date_tab (date_col TIMESTAMP WITH LOCAL TIME ZONE);
    SQL> insert into date_tab values ('15-NOV-00 09:34:28 AM');
    SQL> select * from date_tab;
    DATE_COL
    15-NOV-00 09.34.28.000000 AM
    SQL> alter session set TIME_ZONE = 'EUROPE/LONDON';
    SQL> select * from date_tab;
    DATE_COL
    15-NOV-00 12.34.28.000000 AM
    6. INTERVAL Datatypes
    1) INTERVAL YEAR(year_precision) TO MONTH
    : YEAR/MONTH
    : Year_precision default value is 2
    SQL> create table orders (warranty interval year to month);
    SQL> insert into orders values ('2-6');
    SQL> select warranty from orders;
    WARRANTY
    +02-06
    2) INTERVAL DAY (day_precision) TO SECOND (fractional_seconds_precision)
    : DAY/HOUR/MINUTE/SECOND
    : Logon time 확인시 주로 사용
    : day_precision range 0 to 9, default is 2
    SQL> create table orders (warranty interval day(2) to second);
    SQL> insert into orders values ('90 00:00:00');
    SQL> select warranty from orders;
    WARRANTY
    +90 00:00:00.000000
    7. Interval Fields
    - YEAR : Any positive or negative integer
    - MONTH : 00 to 11
    - DAY : Any positive or negative integer
    - HOUR : 00 to 23
    - MINUTE : 00 to 59
    - SECOND : 00 to 59.9(N) where 9(N) is precision
    8. Using Time Zones
    1) Database operation
    - Defined at CREATE DATABASE
    - Can be altered with ALTER DATABASE
    - Current value given by DBTIMEZONE
    2) Session operation
    - Defined with environment variable ORA_SDTZ
    - Can be altered with ALTER SESSION SET TIME_ZONE
    - Current value given by SESSIONTIMEZONE
    3) TIMESTAMP WITH LOCAL TIMEZONE
    - TIME_ZONE Session parameter
    : O/S Local Time Zone
    Alter session set time_zone = '-05:00';
    : An absolute offset
    Alter session set time_zone = dbtimezone;
    : Database time zone
    Alter session set time_zone = local;
    : A named region
    Alter session set time_zone = 'America/New_York';
    Reference Document
    ------------------

    Hi ,
    I am facing the same problem and my scenario is also same (BAPI's).
    So can you please tell me how you overcome this problem .
    Thanks,
    Rahul

  • Oracle Object Data Type and EJB

    Hi, All:
    Has anyone implemented a project with Oracle user-defined data type (Object
    Data Type) together
    with EJB? That is, using ORDBMS (Object Relational Database) together with
    EJB. I am thinking to use ORDBMS together with EJB. Any information, samples
    and references to this direction is appreciated.
    Thanks,
    John Wen
    RM2M, LLC
    [email protected]

    I''ve got a solution! I've had sql in my query
    SELECT
      ltrim(OPERATIVE_REPORT."orderText",11),
      OPERATIVE_REPORT."resolID",
      COUNT(OPERATIVE_REPORT."(usrID)order_executionUser")
    FROM
      OPERATIVE_REPORT
    GROUP BY
      ltrim(OPERATIVE_REPORT."orderText",11),
      OPERATIVE_REPORT."resolID"
    where orderText has clob datatype. And the reason is GROUP BY. GROUP BY deny CLOB usage.

  • AutoNumber data type

    Hello.
    First of all, I need to tell you that I am a newbie to Oracle and I am not even sure if I am at the right place...
    Here is my question anyhow.
    I am trying to convert a MS Access table to that of Oracle and was wondering what would be the equivalent data type in Oracle for "AutoNumber" data type in MS Access? I heard that I can use sequence object and trigger to do this but I am interested in knowing whether or not there is an equivalent data type for "AutoNumber" is in Oracle.
    Thanx.
    SK
    null

    No, there is no Access-equivalent autonumber in Oracle. If you want automatic key generation, create an oracle Sequence and increment it using an insert trigger. Front end applications will see no difference - i.e. you add the new record, then you can read back the generated key.

  • Matching data types b/w oracle and sql server

    anyone here knows if there is a list of data types supported by both oracle and sql server (regardless of releases & versions?
    an immediate response would be highly appreciated.
    thanks.

    Hi,
    The following post might be of assistance to you:
    http://msdn.microsoft.com/en-us/library/ms151817.aspx
    If this is what you're looking for, then mark the question as answered and closed.
    Regards,
    Naveed.

  • Oracle Forms New Features - Your input.  Supporting data types

    I am interested to know IF we were to support any new database types in Oracle Forms 11g, which types would you like supported and why. I'd also like to know if you are currently working around the absence of a database type.
    Please note, this is not any kind of commitment to support new data types in Oracle Forms applications but we are interested to know if there is demand and if so, for what types.
    Thanks
    Grant Ronald
    Oracle Forms Product Management
    p.s lets keep the thread focused on the topic so please don't post technical questions or comments about different new features - if you want to, start a new thread - thanks

    Hi Grant,
    support for the "new" - well they exists since 9iR1 ... 2001 - data types TIMESTAMP, TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE, INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND would be very helpful.
    Currently it's not possible to use the Data Block Wizard to create a data block for table/view that contains one of these columns.
    (In Forms Builder 10.1.2.3 it fails with a strange error message ... iewbdbc_oracle_to_id ... C:\forms\101220\src\ie\iewbdb.c:724 ...)
    So, one has to create the data block and the items manually. The items have to be CHARS.
    Then forms is able to fetch and display these columns. The user can edit them as normal.
    A WHEN-VALIDATE-ITEM trigger can be used to make sure that the implicit conversion from CHAR to the "new" datatype works.
    For example, an INTERVAL YEAR TO MONTH column (b):
    declare
      l_invalid_interval exception;
      pragma exception_init(l_invalid_interval, -1867);
      l_invalid_month exception;
      pragma exception_init(l_invalid_month, -1843);
      l_dummy interval year(9) to month;
    begin
      l_dummy := to_yminterval(:block2.b);
    exception
      when l_invalid_interval
      then
        message('invalid interval');
        raise form_trigger_failure;
      when l_invalid_month
      then
        message('invalid month');
        raise form_trigger_failure;
      when others
      then
        message(error_text);
        raise form_trigger_failure;
    end;This nasty trick works for most of the "new" datatypes except with TIMESTAMP WITH TIME ZONE.
    In Forms 10.1.2.3 the following WHEN-VALIDATE-ITEM trigger can (incorrectly!) fail:
    declare
      l_dummy timestamp with time zone;
    begin
      l_dummy := to_timestamp_tz(:block2.a);     
    end;It fails with "ORA-01804: failure to initialize timezone information", if the time zone is not like "-11:00", but like "EUROPE/PARIS". Don't know why...
    If we recode our trigger to make a round-trip to the database, it works:
    declare
      l_dummy timestamp with time zone;
    begin
      select to_timestamp_tz(:block2.a)
      into   l_dummy
      from dual;     
    end;We could avoid these tricks, if Forms (and Reports) would support these type natively.
    Thanks, Michael
    PS: The TIMESTAMP and INTERVAL data types should of course be supported as items, parameters, globals and record groups columns.
    Edited by: michael76 on 25.10.2010 01:14

  • How to add a new data type of oracle to SIM(7.0)

    Hi........
    I need to add a new data type(CLOB) to SIM of oracle .can anyone tell me how to modify or add this new data type.
    Any pointers to this will be highly appriciated.......
    thax in advance...

    Hi,
    Easiest way is to download the table eg into an Excel table (if possible) or text table. Drop the table from the database. Build your table with the new key field. Build the database table again and fill it.
    You can do it also over the database into a new table. Drop the old one. Build the enhanced one and fill it. Afterwards drop your (temporary) table.
    Maybe there are other ways, but this works.
    Success,
    Rob

Maybe you are looking for

  • Error while extending iSupply Portal VO

    I try to extending iSupply Portal PosPosummaryVO by create a new view object, and extend PosPosummaryVO. after sql statement step, I appear a error message " Each row in the Query Result Columns must be mapped to a uniqe Query Attribute in the Mapped

  • IChat issue

    Hi Am having issue with iChat on my iMac, in which iChat wndow pop-ups everttime I log into the iMac. I have checked the User & Groups --> LoginItems and the iChat application is unchecked. Am not having similar issue with Macbook Pro. Can anyone hel

  • ACE 4700 - Cannot Ping the Alias

    I cannot ping my alias addresses. I can ping the actual interface addresses but not the alias. When I look at the ARP entry on the switch it's connected to for the alias, it comes up INCOMPLETE. Below is my config. interface gigabitEthernet 1/1 descr

  • Proc flow completetes without error although proc ends in an warning-end

    in my process flow i modelled 3 endings: ok, waring, error (external process to unix-script where i simulated with exit 0 == succsessful exit 1 == warning exit 2 == error with process activity: Use Return as Status) my process flow ends everytime suc

  • Rebuilding iPhoto Libraries

    Hello, I have three questions about rebuilding iPhoto libraries. First, is it better to use iPhoto's built in rebuild (with all boxes checked) or use iPhoto Library Manager's rebuild? Second, I have several libraries in iPhoto 8.1.2 that I plan to im