Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 忘记在表中创建列,因此在输入表单时缺少文本字段_Sql_Oracle_Oracle Apex - Fatal编程技术网

Sql 忘记在表中创建列,因此在输入表单时缺少文本字段

Sql 忘记在表中创建列,因此在输入表单时缺少文本字段,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,在OracleApex中,我使用主细节表单创建了一个表单。有两个表,分别是“订单”和“订单行”表。它很好用。我可以按订单行表单上的“添加行”按钮查看订单行详细信息 问题: 我在创建ORDERLINE表时忘记放置“TYPE”列,因此ORDERLINE表缺少列字段“TYPE”。所以我使用alter命令成功地将“TYPE”列添加到ORDERLINE表中。然后我回到Apex应用程序,我试图更改ORDERLINE表单上的SQL子句。当我按下“应用更改”时,我看到下面的错误消息 错误消息: 无法在生成器中分

在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
您是否尝试过“选中区域源下方的“通用列”复选框”?