SQL Oracle错误

SQL Oracle错误,sql,oracle,Sql,Oracle,第2行错误: ORA-12899:列“S3327043”“巡回演唱会”的值太大。 “类型”(实际值:50,最大值:30) 有人能帮我纠正这个错误吗 好的,我已经修复了它。错误很清楚:TOUR_CONCERTS.TYPE字段允许30个字符,不能再多了,您正在尝试插入更长的字符串。 有两种方法可以解决此问题: 缩短插入的字符串(Freddie Mercury为艾滋病宣传举办的致敬音乐会长度超过30个字符) 更改您的表格定义并设置巡回音乐会。键入字段长度为更高的值(例如200?) 嗯。我想你应该改

第2行错误:

ORA-12899:列“S3327043”“巡回演唱会”的值太大。 “类型”(实际值:50,最大值:30)


有人能帮我纠正这个错误吗



好的,我已经修复了它。

错误很清楚:TOUR_CONCERTS.TYPE字段允许30个字符,不能再多了,您正在尝试插入更长的字符串。
有两种方法可以解决此问题:

  • 缩短插入的字符串(Freddie Mercury为艾滋病宣传举办的致敬音乐会长度超过30个字符)
  • 更改您的表格定义并设置巡回音乐会。键入字段长度为更高的值(例如200?)

  • 嗯。我想你应该改一下你的桌子。30号太短了。
    如果您的数据库是oracle:

    SQL> @tour_concerts1;
    ('6', to_date('02/01/1974', 'DD/MM/YYYY'), 'Freddie Mercury Tribu
    te Concert for AIDS Awareness', 'UK')
                                           *
    

    此错误明确表示您试图在
    tour\u concerts
    表的第3列中插入过长的varchar值

    您可以通过以下方式解决此问题:

  • 更改表的结构,使列接受超过30个字符。例如,50是失败语句的字符数

    alter table tour\u concerts修改列名称varchar2(50)

  • 使用Oracle功能:

    `插入巡回演唱会的价值观(“6”,截止日期(“1974年1月2日”,“年/月/日”)、substr(“弗雷迪·墨丘利艾滋病宣传献礼音乐会”,0,30),“英国”)

  • 例如,如果这些记录是通过jdbc插入到应用程序中的,请调整用户输入,使其不超过表的最大大小


  • 检查您是否试图插入比字段长的值,使字段大于您可能需要的最大值。

    insert等SQL语句必须以分号终止
    
    
    SQL> @tour_concerts1;
    ('6', to_date('02/01/1974', 'DD/MM/YYYY'), 'Freddie Mercury Tribu
    te Concert for AIDS Awareness', 'UK')
                                           *
    
    alter table YOURTABLE alter column 'S3327043' varchar(100)