支持加入表。(Oracle Apex 的新功能)

Posted

技术标签:

【中文标题】支持加入表。(Oracle Apex 的新功能)【英文标题】:Support with joining to tables.(New to Oracle Apex) 【发布时间】:2019-12-11 13:36:56 【问题描述】:

您好,基本上我正在尝试使用下面的代码将客户名称列加入合同列。但它给了我一个我不明白的错误。

错误:

Region → Contract → Source → SQL Query ORA-06550: line 5, column 28: ORA-00942: table or view does not exist

SQL:

select CONTRACT_NO,
       CUSTOMER_CODE,
       START_DATE,
       END_DATE
  from CONTRACT INNER JOIN CUSTOMER
ON Contract.code = Customer.name

[

【问题讨论】:

我似乎无法发布另一张图片。它取代了我所拥有的。但另一个图像基本上包含合同表。它有以下列:合同编号、客户代码开始日期和结束日期。我 那么错误是什么? 区域 → 合同 → 源 → SQL 查询 ORA-06550:第 5 行,第 28 列:ORA-00942:表或视图不存在。这就是它所说的。 【参考方案1】:

据我了解,您需要当前列以及另一个表中的名称列。

select co.CONTRACT_NO,
       co.CUSTOMER_CODE,
       co.START_DATE,
       co.END_DATE,
       cu.name
  from CONTRACT co
 INNER JOIN CUSTOMER cu
    ON co.code = cu.name;

这看起来像是应该可以工作的代码,但是您需要检查表中是否存在您需要它们的所有列,并且 co.code 和 cu.name 实际上确实具有相同的值。

另外,对于以后的问题,标签是 oracle-apex,这次我为你改了。顶点标签是一个不同的不相关的东西。

【讨论】:

【参考方案2】:

我认为其中一个列名中有一个空格。请使用 DESC 命令发布列定义。如果有空格,您需要在整个代码中用引号引用此类列,这并不是真正理想的使用。 Oracle 不推荐使用带引号的标识符,因此请不要在列名中留有空格。请使用别名来标识 select 语句中的列名,并在整个查询中使用一致的列名。这将有助于代码维护和更好的代码可读性。

下面是我尝试的一小段代码供您参考。

-- Create tables
CREATE TABLE customer(
"customer code" VARCHAR2(10),
"customer name" VARCHAR2(50),
address         VARCHAR2(100),
postcode        VARCHAR2(10),
telephone       VARCHAR2(10));


CREATE TABLE contract(
"contract no"     VARCHAR2(10), 
"customer code"   VARCHAR2(10), 
"start date"      DATE,
"end date"        DATE
);

-- Populate values
INSERT INTO customer
values ('4188','Mrs Alma Levy','"Ap #739-3930"','FA93 6JF','0000000000');

INSERT INTO contract
VALUES('08/4469','4188','15-DEC-2008','14-DEC-2009');

-- Query data
SELECT con."contract no", cust."customer code", con."start date", con."end date"
FROM contract con
INNER JOIN customer cust
ON con."customer code" = cust."customer code";

OUTPUT:
contract no   customer code  start dat end date 
------------- -------------- --------- ---------
08/4469       4188           15-DEC-08 14-DEC-09

在您的另一个问题“支持 sql 连接语句”中,还可以查看此查询的另一个版本,列名中没有空格:)

快乐编码

HTH

【讨论】:

以上是关于支持加入表。(Oracle Apex 的新功能)的主要内容,如果未能解决你的问题,请参考以下文章

如何加入 Apex oracle

Oracle APEX 选择列表

错误:尝试在空表中首次加载表中的 Excel 数据时,Oracle Apex 中的“表名已存在”

Oracle Apex 更新表的特定行

在 Oracle APEX 中访问报表输出表

具有自动完成 oracle apex 的文本字段