Syntax error alter column for bit data

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • marco74
    New Member
    • Apr 2013
    • 1

    Syntax error alter column for bit data

    I have a "VARCHAR(40 0)" column, which i want to modify to "VARCHAR(40 0) FOR BIT DATA".

    But if i try:

    "ALTER TABLE mytable ALTER COLUMN mycolumn SET DATA TYPE VARCHAR (400) FOR BIT DATA"

    gives me an ERROR:

    > Error: DB2 SQL error: SQLCODE: -104, SQLSTATE: 42601,
    > SQLERRMC: FOR BIT DATA;A TYPE VARCHAR (400);<space>
    > SQLState: 42601
    > ErrorCode: -104

    If i try:
    "ALTER TABLE mytable ALTER COLUMN mycolumn SET DATA TYPE VARCHAR (400)"
    it works, so the sintax seems to be correct.

    Where do i get wrong?

    Thanks in advance
    Marco
  • vijay2082
    New Member
    • Aug 2009
    • 112

    #2
    Hi,

    Works well for me on db2 9.5


    C:\>db2 "create table test (name varchar(200) for bit data)"
    DB20000I The SQL command completed successfully.

    C:\>db2 describe table test

    Data type Column
    Column name schema Data type name Length Scale Nulls
    ------------------------------- --------- ------------------- ---------- ----- ------
    NAME SYSIBM VARCHAR 200 0 Yes

    1 record(s) selected.


    C:\>db2 "create table test2 (name varchar(200))"
    DB20000I The SQL command completed successfully.

    C:\>db2 describe table test2

    Data type Column
    Column name schema Data type name Length Scale Nulls
    ------------------------------- --------- ------------------- ---------- ----- ------
    NAME SYSIBM VARCHAR 200 0 Yes

    1 record(s) selected.


    C:\>db2 "alter table test2 alter column name set data type varchar(400) for bit data"
    DB20000I The SQL command completed successfully.

    C:\>db2 describe table test2

    Data type Column
    Column name schema Data type name Length Scale Nulls
    ------------------------------- --------- ------------------- ---------- ----- ------
    NAME SYSIBM VARCHAR 400 0 Yes

    1 record(s) selected.


    C:\>db2 "create table test3 (name varchar(200))"
    DB20000I The SQL command completed successfully.

    C:\>db2 "alter table test3 alter column name set data type varchar(400) FOR BIT DATA"
    DB20000I The SQL command completed successfully.

    C:\>db2 "create table test4 (name varchar(200))"
    DB20000I The SQL command completed successfully.



    C:\>db2 "insert into test4 values('Vijay') "
    DB20000I The SQL command completed successfully.

    C:\>db2 "insert into test4 values('db2 luw')"
    DB20000I The SQL command completed successfully.

    C:\>DB2 COMMIT
    DB20000I The SQL command completed successfully.

    C:\>db2 "select * from test4"

    NAME

    ---------------------------------------------------------------------------------------------------------------------

    Vijay

    db2 luw


    2 record(s) selected.


    C:\>db2 "alter table test4 alter column name set data type varchar(400) FOR BIT DATA"
    DB20000I The SQL command completed successfully.
    command completed successfully.

    If you still face the error then post the snapshot with exact command

    Cheers, Vijay

    Comment

    Working...