Single CHAR column

Should I use CHAR(1) or VARCHAR(1) for a single char column?
Thanks
Venkat

I think it doesnt matter CHAR or VARCHAR2
I always go for CHAR(1) for mandatory single char column

Similar Messages

  • Inserting blanks into a NOT NULL CHAR column

    How do you insert a value of blank/spaces into a NOT NULL CHAR column. Oracle 9i interprets the space as a NULL and the insert fails because the column does not allow NULLS. Thanks in advance.

    Hi,
    19:07:13 topgun>create table t1(c1 varchar2(10) not null);
    Table created.
    19:07:33 topgun>insert into t1 values (' ');
    1 row created.
    19:07:42 topgun>select * from t1;
    C1
    19:07:46 topgun>select count(*) from t1;
      COUNT(*)
             1
    19:07:53 topgun>select * from V$version;
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for Linux: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production- Pavan Kumar N

  • How to use multiple hierarchies for a single char in single query

    Hi,
    Is there any way that we can use multiple hierarchies for a single char in single query. I tried and it just allows me to select one hierarchy even if I use hierarchy variable.
    I have a requirement where user wants to see information related to a cost center with different cost center groups in different hierarchies (every year has different cost center group hierarchies).
    Suppose I want to see information related to a cost center from year 2001-2004.in these four year cost center may have been associated to different groups depending upon that year hierarchy. How can I do that?
    Thanks
    Jona

    Nope. Now way to do this.
    There is always just one hierarchy assigned to a characteristic. And even if the hierarchy was time dependent, it only reads it for one key date and not according to transaction data.
    Regards,
    Beat

  • How to get a single row column from a viewobject in java?

    I have a class file that goes out and gets a viewobject and sets its where clause
    this is it:
    vcRow = vc.createViewCriteriaRow();
    vcRow.setAttribute("LogonId", "='" + strPcis_Login.toUpperCase() + "'");
    vc.addElement(vcRow);
    vo.applyViewCriteria(vc);
    vo.executeQuery();
    I know this working cause I can watch it in debug..
    but now the problem.
    I've looked in the docs and don't see how one can pull the value of the row it found and place it in a uix page in a textinput area
    how can I get a single row column, in this case the UserName that is in the view object to a string and then place it into my
    uix page? I've looked and looked and don't see a method for this.
    is there a way to take the oracle.cabo.servlet.Page and set a textinput with a viewobject get method?
    what way do you do this and where is it documented?

    is there a way to take the oracle.cabo.servlet.Page and set a textinput with a viewobject get method?
    what way do you do this and where is it documented? What you can do is get the value from your VO and set it somewhere that UIX can data bind to -- as a Page proprety, on HttpSession, etc. This is documented in Chapters 4 (Data Binding) and 5 (Controller) of the UIX Developer's Guide.
    To set a property, you use Page.setProperty(String key, String value). Then, in your UIX file, to make a textInput that has the value pulled from a given page property, use:
    <textInput data:text="key@ctrl:page" />
    -brian
    Team UIX

  • How to get the bounds of single char?

    How to get the bounds of single char in text frame?
    Thanks

    I also think there is not an exiting function which can get it, but we can work around. Can you give some ideas to work around it?

  • ORA-01401 error on char column with oracle oci driver

    Hello,
    We found a potential bug in the kodo.jdbc.sql.OracleDictionary class
    shipped as source with Kodo:
    In newer Kodo versions (at least in 3.3.4), the method
    public void setString (PreparedStatement stmnt, int idx, String
    val,          Column col)
    has the following code block:
    // call setFixedCHAR for fixed width character columns to get padding
    // semantics
    if (col != null && col.getType () == Types.CHAR
    && val != null && val.length () != col.getSize ())
    ((OraclePreparedStatement) inner).setFixedCHAR (idx, val);
    This block seems to be intended for select statements but is called on
    inserts/updates also. The latter causes a known problem with the Oracle
    oci driver when settings CHAR columns as FixedCHAR, which reports an
    ORA-01401 error (inserted value too large for column) when definitely no
    column is too long. This does not happen with the thin driver.
    We reproduced this with 8.1.7 and 9.2.0 drivers.
    For us we solved the problem by subclassing OracleDictionary and removing
    the new code block.
    Regards,
    Rainer Meyer
    ELAXY Financial Software & Solutions GmbH & Co. KG

    Rainer-
    I read at
    re:'ORA-01401 inserted value too large for column' - 9i that:
    "This is fixed in Oracle9i Release 2"
    Can you try that version of the driver? Also, does it fail in the Oracle
    10 OCI driver?
    Rainer Meyer wrote:
    Hello,
    We found a potential bug in the kodo.jdbc.sql.OracleDictionary class
    shipped as source with Kodo:
    In newer Kodo versions (at least in 3.3.4), the method
    public void setString (PreparedStatement stmnt, int idx, String
    val,          Column col)
    has the following code block:
    // call setFixedCHAR for fixed width character columns to get padding
    // semantics
    if (col != null && col.getType () == Types.CHAR
    && val != null && val.length () != col.getSize ())
    ((OraclePreparedStatement) inner).setFixedCHAR (idx, val);
    This block seems to be intended for select statements but is called on
    inserts/updates also. The latter causes a known problem with the Oracle
    oci driver when settings CHAR columns as FixedCHAR, which reports an
    ORA-01401 error (inserted value too large for column) when definitely no
    column is too long. This does not happen with the thin driver.
    We reproduced this with 8.1.7 and 9.2.0 drivers.
    For us we solved the problem by subclassing OracleDictionary and removing
    the new code block.
    Regards,
    Rainer Meyer
    ELAXY Financial Software & Solutions GmbH & Co. KG
    Marc Prud'hommeaux
    SolarMetric Inc.

  • Querying CHAR columns with character length semantics unreliable

    Hi again,
    It appears that there is a bug in the JDBC drivers whereby it is highly unlikely that the values of CHAR columns that use character length semantics can be accurately queried using ResultSet.getString(). Instead, the drivers return the value padded with space (0x#20) characters out to a number of bytes equal to the number of characters multiplied by 4. The number of bytes varies depending on the number and size of any non-ascii characters stored in the column.
    For instance, if I have a CHAR(1) column, a value of 'a' will return 'a ' (4 characters/bytes are returned), a value of '\u00E0' will return '\u00E0 ' (3 characters / 4 bytes), and a value of '\uE000' will return '\uE000 ' (2 characters / 4 bytes).
    I'm currently using version 9.2.0.3 of the standalone drivers (ojdbc.jar) with JDK 1.4.1_04 on Redhat Linux 9, connecting to Oracle 9.2.0.2.0 running on Solaris.
    The following sample code can be used to demonstrate the problem (where the DDL at the top of the file must be executed first):
    import java.sql.*;
    import java.util.*;
    This sample generates another bug in the Oracle JDBC drivers where it is not
    possible to query the values of CHAR columns that use character length semantics
    and are NOT full of non-ascii characters. The inclusion of the VARCHAR2 column
    is just a control.
    CREATE TABLE TMP2
    TMP_ID NUMBER(10) NOT NULL PRIMARY KEY,
    TMP_CHAR CHAR(10 CHAR),
    TMP_VCHAR VARCHAR2(10 CHAR)
    public class ClsCharSelection
    private static String createString(char character, int length)
    char characters[] = new char[length];
    Arrays.fill(characters, character);
    return new String(characters);
    } // private static String createString(char, int)
    private static void insertRow(PreparedStatement ps,
    int key, char character)
    throws SQLException
    ps.setInt(1, key);
    ps.setString(2, createString(character, 10));
    ps.setString(3, createString(character, 10));
    ps.executeUpdate();
    } // private static String insertRow(PreparedStatement, int, char)
    private static void analyseResults(PreparedStatement ps, int key)
    throws SQLException
    ps.setInt(1, key);
    ResultSet results = ps.executeQuery();
    results.next();
    String tmpChar = results.getString(1);
    String tmpVChar = results.getString(2);
    System.out.println(key + ", " + tmpChar.length() + ", '" + tmpChar + "'");
    System.out.println(key + ", " + tmpVChar.length() + ", '" + tmpVChar + "'");
    results.close();
    } // private static void analyseResults(PreparedStatement, int)
    public static void main(String argv[])
    throws Exception
    Driver driver = (Driver)Class.forName(
    "oracle.jdbc.driver.OracleDriver").newInstance();
    DriverManager.registerDriver(driver);
    Connection connection = DriverManager.getConnection(
    argv[0], argv[1], argv[2]);
    PreparedStatement ps = null;
    try
    ps = connection.prepareStatement(
    "DELETE FROM tmp2");
    ps.executeUpdate();
    ps.close();
    ps = connection.prepareStatement(
    "INSERT INTO tmp2 ( tmp_id, tmp_char, tmp_vchar " +
    ") VALUES ( ?, ?, ? )");
    insertRow(ps, 1, 'a');
    insertRow(ps, 2, '\u00E0');
    insertRow(ps, 3, '\uE000');
    ps.close();
    ps = connection.prepareStatement(
    "SELECT tmp_char, tmp_vchar FROM tmp2 WHERE tmp_id = ?");
    analyseResults(ps, 1);
    analyseResults(ps, 2);
    analyseResults(ps, 3);
    ps.close();
    connection.commit();
    catch (SQLException e)
    e.printStackTrace();
    connection.close();
    } // public static void main(String[])
    } // public class ClsColumnInsertion

    FYI, this has been mentioned as early as November last year:
    String with length 1 became 4 when nls_lang_semantics=CHAR
    and was also brought up in Feburary:
    JDBC thin driver pads CHAR col to byte size when NLS_LENGTH_SEMANTICS=CHAR

  • TopLink JPA - trailing spaces on Char column

    Gurus,
    In JDBC you use the following to ignore trailing spaces when querying on Char column:
    OracleConnection conn = (OracleConnection) c;
    conn.setDefaultFixedString(true);
    How to achieve this using TopLink JPA?
    Thanks much,
    Nicky

    Nicky,
    I believe you would need to do this in API. Ideally setting these configurations on the properties of the JDBC connection pool is easier but if you wish to do it with TopLink Essentials I would use a session event listener's postAcquireConnection to customize it.
    In the persistence.xml you will need to configure your persistence unit to use a session customer like:
            <property name="toplink.session.customizer" value = "mypackage.JDBCConnectionConfig"/>Then you will need to implement this customizer and include it on the classpath of your application:
    public class JDBCConnectionConfig implements SessionCustomizer {
        public void customize(Session session) {
            session.getEventManager().addListener(new JDBCConfigEventListener());   
        class JDBCConfigEventListener extends SessionEventAdapter {
            public void postAcquireConnection(SessionEvent event) {
                Connection conn = ((DatabaseAccessor) event.getResult()).getConnection();
                OracleConnection oconn = (OracleConnection) conn;
                oconn.setDefaultFixedString(true);
    Note: I did not see setDefaultFixedString in the most recent version of the Oracle JDBC driver
    I would definitely look into configuring your data source's connection pool with this property enabled before adding this event listener.
    Doug

  • Parsing single chars to a vector.

    I'm reading from a file, using BufferedReader. Readig a line at a time. Currently i have a StringTokenizer which breaks up the line using whitespace. How can I break up the "input" line by single chars, and how do I get the delim to work using the StringTokenizer, so that I can use other char instdead of using whitespace- or set up mutliple delims.
    Is there a way I could add the single chars to a vector as an indvidual element to the vector so that I can bump off the elements that I do not have a use for?

    In order to use the " character, you need to use the escape character \" So, your statement would look like
    st = new StringTokenizer(yourString,"\"<");The second char in that is a <, but the parser on the site sometimes converts it to the html code as & lt; Just use whatever chars you need in the second parameter
    HTH

  • Single JTable Column with several diff Cell Editors

    Am trying to create a single JTable column that can have several different cell editors. Java seems to be bias to having 1 cell editor for the whole column.
    For example in 1 column can I have
    Row1 : TextBox
    Row2: Check Box
    Row3: Radio Buttons
    Row4: JColorChooser
    At the moment I can only have one CellEditor for the whole column which is not very helpful.

    the default implementation offers to provide editors per column in the tableColumn and/or editors per class type by setting default editors ( JTable.setDefaultEditor(Class class, TableCellEditor editor) ). If you look at the getCellEditor method of JTable you see that first the tablecolumns are asked for an editor, and if this doesnt succeed a default editor for the class acording to the value at the passed grid position is determined.
    If this does not fullfil your needs, you can still overwrite the getCellEditor method of JTable and return whatever editor is suitable.
    regards,
    stefan

  • PreparedStatement and CHAR columns

    Hi
    I am having troubles using preparedStatements on tables with columns of type CHAR:
    My table has a column of type CHAR(3). The data in this column is 0,1,2 or three characters long.
    My query contains this column in the WHERE clause in the from "WHERE colName = ?".
    The problem is now, that I have to use a String in the pstmt.setString(1, str) statement that is exactly 3 characters long. Otherwise I don't get any result.
    If I use a 2 char string i get nothing. But with a 'normal' statement or in SQL*Plus it works perfectly fine.
    Of course, I could trim() my column or fill the string up to be always 3 chars, but I think that's not state of the art.
    Any other solutions?
    Thanks in advance.
    Andres
    null

    What you describe is the ANSI behavior of a CHAR column. VARCHAR columns can match on any length (and can be any length up to the maximum or the column constrint limit), but a char column is required to be blank padded. If you must use CHAR then write a function to automatically pad the string for you so that it will match.

  • Single row/column marquee tool "add to" not working

    I was trying to follow along with a tutorial that was using the single row/column marquee tool.  In it they used shift click to add to the selection.  It's not working for me.  I also tried clicking on the add to icon for the marquee tool, and it still doesn't work.  Does anyone know what the problem could be and how I might fix it?
    Thanks!

    hey i know this is late but if its any help now all u need to do i zoom in a lil closer the proceed with the selection. hope i helped. oh and u have to make sure your grid lines are perfectly on the 10,20,30,... percent mark and u have to be zoomed in if u want to see your lines. the problem is your file is too big and has somn to do with ur computer. its not only mac windows too.
    p.s. when ur done drawing the boxes u can zoom out...i know the tutorial

  • Why Java cannot read a single char ?

    Hi all,
    Have you ever tried to read a single char in java
    and output to the screen? I have tried nearly all
    IO streams but it seems that System.in doesn't
    returns until a CR/LF is issued. Why is it implemented this way?
    Are there any alternatives (JNI ?) ?
    Thanks a lot
    Francesco

    Did you already try the next issue?
    public class test{
         public static void main(String[] args)
         throws Exception{
              System.out.print("Enter a character: ");
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    char ch = (char)br.read();
    System.out.println("You've entered: " + ch);
    Hope this help!

  • How to Sort one key figure values in two column based on single char

    hi gurus,
    I would really appreciate if some one can help me out with my question.
    I have to design a query based on a Multiprovider built on three ODS, Purchasing, Confirmations & Invoic ODS
    Purchase order Value and Number data in PO ODS, and confirmations is in CONFODS, Invoice Values in INV ODS,
    The design of the requirement is
    Vendor --> PO --> Material PO Value --> Text PO Value  --> Confirmation value --> Invoice value
    There are Two POS 1. Material PO & 2. Text PO
    I need to display all the Purchase orders for a vendor and in different columns i need to display the value of the Material PO and Text PO and their Confirmation Value and how much is the invoiced value for every PO.
    Can anybody tell me what should i do in the Query Designer to display the necessary values.
    Thank you

    Hi william,
    When i put in the PO KF in the column and also the Confirmation KF in other Column it either shows me # for both the entries or it shows me values in only one of the column
    if PO is displayed the Confirmation is not displayed and if Confirmation is displayed PO values are shown as # i dont know what wrong i am doing.
    if you have idea can you tell me what i should do when i want two different values from two ODS if there are no characteristics that are matching in either of the ODS should i go for Multi Provider and if so how should be my designing. i would really appreciate if you can tell me taking a scenerio.
    Thanks

  • Referencing a char column in another query

    HI
    I have 2 queries. My child query returns char data which needs to be referenced in the main query.
    Is it possible to access this data from my main query.
    I know its possible with numbers using summary cols.
    TIA
    TIM

    You can reference a single value of the child query using the "first/Last" summary functions in a summary column in the master query. The datatype of the column doesn't matter.

Maybe you are looking for

  • MS SQL Procedure Call from Oracle Database

    I have Oracle Database 11g connected to MS Sql Server 2008 via dg4msql, and need to execute procedure on MS Sql with parameters from Oracle, and get dataset (table) as a result. I'm not sure is it possible to call procedure directly from Oracle; One

  • Downloading adobe

    How do you download adobe flash player on the MAC? I cannot play You Tube videos without it...

  • Price Diff & Quantity both are not shown in  MRBR at a one time.

    Dear Friends, We've a issue related to invoice blocking scenario Their is one invoice . both quantity & price differance is their but in MRBR only quantity diff is shown. PO 100 * 10=1000 Migo  quantity 8 Miro  quantity 8 & price 9000. ( in invoice)

  • JVM Error while launching SOA installation

    Hello Everyone I am not able to launch the installation for SOA suite 11g on windows server 2003.When i click on setup i get following error: Java Virtual Machine Launcher Could Not find main class.Program Will exit. Please help! Thanks Chinmay

  • I upgraded from CS4 to CS6, how do I get my CS4 extensions ?

    I recently upgraded from DW CS4 to DW CS6, but I can't see my DW extensions in CS6 ? How do i get to them ? Will I need to reinstall from scratch ? Thanks in Advance.