Sql 忘记在表中创建列,因此在输入表单时缺少文本字段
在OracleApex中,我使用主细节表单创建了一个表单。有两个表,分别是“订单”和“订单行”表。它很好用。我可以按订单行表单上的“添加行”按钮查看订单行详细信息 问题: 我在创建ORDERLINE表时忘记放置“TYPE”列,因此ORDERLINE表缺少列字段“TYPE”。所以我使用alter命令成功地将“TYPE”列添加到ORDERLINE表中。然后我回到Apex应用程序,我试图更改ORDERLINE表单上的SQL子句。当我按下“应用更改”时,我看到下面的错误消息 错误消息: 无法在生成器中分析查询。如果您认为您的查询在语法上是正确的,请选中区域源下面的“通用列”复选框以继续而不进行分析Sql 忘记在表中创建列,因此在输入表单时缺少文本字段,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,在OracleApex中,我使用主细节表单创建了一个表单。有两个表,分别是“订单”和“订单行”表。它很好用。我可以按订单行表单上的“添加行”按钮查看订单行详细信息 问题: 我在创建ORDERLINE表时忘记放置“TYPE”列,因此ORDERLINE表缺少列字段“TYPE”。所以我使用alter命令成功地将“TYPE”列添加到ORDERLINE表中。然后我回到Apex应用程序,我试图更改ORDERLINE表单上的SQL子句。当我按下“应用更改”时,我看到下面的错误消息 错误消息: 无法在生成器中分
ORA-00918:定义不明确的列 Before SQL子句:
select
"SL_ID",
"ORD_ID",
"CW_SALESLINE"."INV_ID",
"QUANTITY",
"QUANTITY" * "PRICE" AS Amount
from "#OWNER#"."CW_SALESLINE" , "#OWNER#"."CW_INVENTORY"
where "CW_SALESLINE"."INV_ID" = "CW_INVENTORY"."INV_ID" AND "ORD_ID" = :P11_ORD_ID
select
"SL_ID",
"ORD_ID",
"CW_SALESLINE"."INV_ID",
"TYPE",
"QUANTITY",
"QUANTITY" * "PRICE" AS Amount
from "#OWNER#"."CW_SALESLINE" , "#OWNER#"."CW_INVENTORY"
where "CW_SALESLINE"."INV_ID" = "CW_INVENTORY"."INV_ID" AND "ORD_ID" = :P11_ORD_ID
SQL子句之后:
select
"SL_ID",
"ORD_ID",
"CW_SALESLINE"."INV_ID",
"QUANTITY",
"QUANTITY" * "PRICE" AS Amount
from "#OWNER#"."CW_SALESLINE" , "#OWNER#"."CW_INVENTORY"
where "CW_SALESLINE"."INV_ID" = "CW_INVENTORY"."INV_ID" AND "ORD_ID" = :P11_ORD_ID
select
"SL_ID",
"ORD_ID",
"CW_SALESLINE"."INV_ID",
"TYPE",
"QUANTITY",
"QUANTITY" * "PRICE" AS Amount
from "#OWNER#"."CW_SALESLINE" , "#OWNER#"."CW_INVENTORY"
where "CW_SALESLINE"."INV_ID" = "CW_INVENTORY"."INV_ID" AND "ORD_ID" = :P11_ORD_ID
我刚刚在SQL语句中添加了“TYPE”。
ORDERLINE表通过alter命令添加了类型列。有什么我没做的吗?
我希望当我按下添加行按钮时,订单行输入的“类型”字段出现
ORA-00918:定义不明确的列
联接中使用的列名存在于多个表中,因此引用不明确。在联接中,出现在多个表中的任何列名在引用时都必须以其表名作为前缀。该列应被引用为TABLE.column或TABLE_ALIAS.column
所以,只是一个猜测: 您不能在
CW\U SALESLINE
和CW\U INVENTORY
中都有TYPE
列吗?可能是您错误地将该列添加到两个表中了?无论如何,这可以解释“定义模糊”的错误。解决方案是在列名前面加上正确的表名/别名
试试看:
select
"SL_ID",
"ORD_ID",
"CW_SALESLINE"."INV_ID",
"CW_SALESLINE"."TYPE", -- or "CW_INVENTORY"."TYPE" not clear from your question
-- which table was modified
"QUANTITY",
"QUANTITY" * "PRICE" AS Amount
from "#OWNER#"."CW_SALESLINE" , "#OWNER#"."CW_INVENTORY"
where "CW_SALESLINE"."INV_ID" = "CW_INVENTORY"."INV_ID" AND "ORD_ID" = :P11_ORD_ID
您是否尝试过“选中区域源下方的“通用列”复选框”?