【问题标题】:how to modify the size of a column如何修改列的大小
【发布时间】:2017-02-08 16:11:50
【问题描述】:

我在 Oracle SQL Developer 中创建了表 Test_Project2。之后我意识到 proj_name 列的大小很小,所以我决定使用以下语句修改该列

ALTER TABLE TEST_PROJECT2 MODIFY proj_name VARCHAR2(300);

但由于某种原因,Oracle SQL Developer 用红色强调了分号,我不知道什么是错误以及如何纠正它

Test_Project2

CREATE TABLE Test_Project2 (
proj_id number(30),
proj_name VARCHAR2 (30),
proj_desc VARCHAR2(300)
);

【问题讨论】:

  • 我解决了..它应该是:ALTER TABLE Test_Project2 MODIFY (proj_name varchar(150)); /
  • 将其添加为答案并接受该答案,以便将此问题标记为已解决

标签: oracle oracle-sqldeveloper alter-table


【解决方案1】:

如果你运行它,它会工作,但为了让 SQL Developer 识别并且不对可能的错误发出警告,你可以将它更改为:

ALTER TABLE TEST_PROJECT2 MODIFY (proj_name VARCHAR2(300));

【讨论】:

    【解决方案2】:

    无论 Oracle SQL Developer 可能在语法突出显示中指出什么错误,实际上运行您的 alter 语句完全按照您最初的方式运行:

    ALTER TABLE TEST_PROJECT2 MODIFY proj_name VARCHAR2(300);
    

    如果您需要一次更改多个列,则只需要添加括号,例如:

    ALTER TABLE TEST_PROJECT2 MODIFY (proj_name VARCHAR2(400), proj_desc VARCHAR2(400));
    

    【讨论】:

    • 我更喜欢在数字后添加“CHAR”和 varchar2,以避免与“BYTE”产生歧义:ALTER TABLE TEST_PROJECT2 MODIFY proj_name VARCHAR2(300 CHAR);。在此处查看更多信息:stackoverflow.com/questions/7477564/…
    【解决方案3】:

    这是使用 Toad for Oracle 12.8.0.49 完成的

    ALTER TABLE SCHEMA.TABLENAME 
        MODIFY (COLUMNNAME NEWDATATYPE(LENGTH)) ;
    

    例如,

    ALTER TABLE PAYROLL.EMPLOYEES 
        MODIFY (JOBTITLE VARCHAR2(12)) ;
    

    【讨论】:

      猜你喜欢
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      相关资源
      最近更新 更多