我有一个代码块来列出我在一组表中的约束,但它给出了这个错误:
ORA-00904: "TOTAL_CUSTOMER_COUNTRY": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 7 Column: 1
每次从语句中删除表时,错误都是一样的。我试过在''标记中包含表格,但输出是空白的。
SELECT a.owner, a.table_name, constraint_type, a.constraint_name,
column_name, search_condition, r_constraint_name
FROM user_constraints A, user_cons_columns B
WHERE A.constraint_name = B.constraint_name
AND A.table_name IN (bank_account, basket, country, credit_card,
customer, item, orders, paypal, seller, total_balance,
total_customer_country)
ORDER BY A.table_name, constraint_type;
以下是我正在使用的整个声明,我不确定错误来自何处。任何帮助都会非常感谢
答案 0 :(得分:1)
您正在查询数据字典视图。 TOTAL_CUSTOMER_COUNTRY
不是USER_CONSTRAINTS或USER_CONS_COLUMNS的属性。它是一个字面值 - 一个表名 - 所以你需要引用它。
“我已尝试将表格包含在''标记中,但输出为空白。”
Oracle以大写形式存储对象名称。所以你也需要改变案例。
此版本的查询应选择所需表格的详细信息。
SELECT a.owner, a.table_name, constraint_type, a.constraint_name,
column_name, search_condition, r_constraint_name
FROM user_constraints A,
user_cons_columns B
WHERE A.constraint_name = B.constraint_name
AND A.table_name IN ('BANK_ACCOUNT', 'BASKET', 'COUNTRY', 'CREDIT_CARD',
'CUSTOMER', 'ITEM', 'ORDERS', 'PAYPAL', 'SELLER', 'TOTAL_BALANCE',
'TOTAL_CUSTOMER_COUNTRY')
ORDER BY A.table_name, constraint_type;