【问题标题】:Oracle SQL- Invalid Alter Table OptionOracle SQL - 无效的 Alter Table 选项
【发布时间】:2020-11-10 13:58:17
【问题描述】:

我创建了下表,付款状态列使用数字 (1&0) 来显示付款状态 1 如果已收到,0 如果未收到。我用数据填充了一些行。但是我决定使用 (Paid, Not Paid) 而不是 (1, 0)。我尝试执行 Alter table 并收到此错误:ORA-01735: invalid ALTER TABLE option 01735. 00000 - “无效的 ALTER TABLE 选项”。我知道发生这种情况是因为表中的数据类型设置为数字并且已经填充了数字,但是解决此问题的最简单方法是什么?

谢谢

Name                    Null?    Type         
----------------------- -------- ------------ 
OWNER_NAME                       VARCHAR2(20) 
APARTMENT_NUMBER                 VARCHAR2(4)  
TELEPHONE_NUMBER                 VARCHAR2(15) 
MONTH_YEAR                       VARCHAR2(6)  
FEE                              NUMBER       
PAYMENT_STATUS          NOT NULL NUMBER(1)    
MONEY_HANDED_TO_COMMITY          VARCHAR2(3)  

【问题讨论】:

  • 就个人而言,我根本不会“修复”它。它没有坏。如果您想显示“付费/未付费”,请在查询时使用 CASE 语句进行翻译。如果将其更改为更长的字符串来保存文本,则几乎 100% 的机会会出现一些无效文本。至少,区分大小写会使以后的比较容易出错。

标签: sql oracle alter-table


【解决方案1】:

没有“简单”的方法。

  • 创建一个新列
  • 更新表并设置新列的值(取决于那些 0/1)
  • 删除旧列
  • 将新列重命名为旧名称

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2016-03-30
    相关资源
    最近更新 更多