【问题标题】:Can someone help me with SQL Error: ORA-00904?有人可以帮我解决 SQL 错误:ORA-00904 吗?
【发布时间】:2015-02-25 10:52:29
【问题描述】:

我是 SQL 新手,需要一些帮助。当我尝试将一些数据输入到表中时,我得到了这个:

SQL 错误:ORA-00904:“TRUKMĖ”:标识符无效 00904. 00000 - “%s:无效标识符” *原因: *行动:

这是我要填写的表格:

Name        Null     Type          
NR          NOT NULL NUMBER(2)     
PAVADINIMAS NOT NULL VARCHAR2(245) 
SVARBA               VARCHAR2(10)  
PRADŽIA              DATE          
TRUKMĖ               NUMBER(4)

这是一个sql:

INSERT INTO Projektai (
    Nr,
    Pavadinimas,
    Svarba,
    Pradžia,
    TRUKMĖ
    )
VALUES (
    Projektai_Vykdytojai_Nr.NEXTVAL,
    'Studentu apskaita',
    'Maža',
    (to_date('2005-01-01', 'yyyy-mm-dd')),
    (12)
    );

如果有人能帮助我,我将不胜感激。谢谢

【问题讨论】:

  • 我不能重复? sqlfiddle.com/#!4/6f14d/1
  • 我对这里的一切都很陌生,如果我不明白的话,对不起:D
  • 语言环境问题?如何为 Oracle 指定排序规则或 Unicode?​​span>
  • 显然,非标准字符可能是这里的原因。你的数据库字符集是什么?另外,为什么在 VALUES 部分的圆括号中加上数字 12?
  • @tvCa 字符在这里不是问题...我已经找到了。我把括号放在那里是因为我认为如果我分开那个值它会解决问题......但它没有......:D

标签: sql oracle


【解决方案1】:

这些外来字符可能不是数据库编码的有效标识符;尝试将重音字符括在引号中:

INSERT INTO Projektai (
    Nr,
    Pavadinimas,
    Svarba,
    "Pradžia",
    "TRUKMĖ"
) VALUES (
    Projektai_Vykdytojai_Nr.NEXTVAL,
    'Studentu apskaita',
    'Maža',
    to_date('2005-01-01', 'yyyy-mm-dd'),
    12
);

我还删除了一些不必要的括号。

【讨论】:

  • "PRADŽIA" 根据表格描述是否需要以大写形式引用?
  • 我已经发现了一个问题,但还是谢谢:) 顺便说一下,外来字符不是问题。它适用于其他表:)
  • @mantas 如果您发现问题,请发布您的解决方案作为答案。
  • @Bohemian♦ 它对其他人不起作用,因为它仍然会给出错误,但它仍然设法将数据插入到表中。我不明白我是怎么做到的,所以我不会张贴。我想不发布我不明白的东西是正常的
  • @Axel:错误表示 TRUKME 列错误,根据情况可以。还有其他问题..
猜你喜欢
  • 2021-07-10
  • 2016-07-09
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 2021-05-30
相关资源
最近更新 更多