【问题标题】:Single-Row returns more than one row error in Oracle Apex when using Insert function - SQL使用 Insert 函数时,Single-Row 在 Oracle Apex 中返回多行错误 - SQL
【发布时间】:2021-10-22 10:38:38
【问题描述】:

我在使用 Oracle Apex Workspace 的 Oracle Live SQL 教程时遇到了很多问题。特别是,由于以下原因,我被困在模块 3:插入数据:

本教程要我运行以下代码以添加到雇员表中:

insert into EMPLOYEES 
   (name, job, salary, deptno) 
   values
   ('Sam Smith','Programmer', 
    5000, 
  (select deptno 
  from departments 
  where name = 'Development'));

insert into EMPLOYEES 
   (name, job, salary, deptno) 
   values
   ('Mara Martin','Analyst', 
   6000, 
   (select deptno 
   from departments 
   where name = 'Finance'));

insert into EMPLOYEES 
   (name, job, salary, deptno) 
   values
   ('Yun Yates','Analyst', 
   5500, 
   (select deptno 
   from departments 
   where name = 'Development'));

但是,当我尝试运行此代码(从教程复制并粘贴到我的 Oracle Apex 工作区)时,我收到以下错误:

ORA-01427:单行子查询返回多于一行 ORA-06512:在“SYS.DBMS_SQL”,第 1721 行

我检查了我的 Objects aka 表,以确保没有包含重复列名的表,但是,我没有任何重复的表。

谁能帮我解决这个问题?我对 SQL 和 Oracle Apex 工作区都很陌生。

【问题讨论】:

    标签: sql oracle oracle-apex


    【解决方案1】:

    这表明您的departments 的某些名称不止一行。您可以确定哪些:

    select name
    from departments
    group by name
    having count(*) > 1;
    

    可能不应该有重复。您可能不小心将数据两次加载到表中,或者类似的东西。

    【讨论】:

    • 嗨,戈登,我检查了部门表,结果发现有重复的行。我希望 Oracle Apex 告诉我创建了这样的行。
    • 因此有效!感谢您的帮助!
    • 为什么 APEX 会告诉你有重复的行?这是一个数据库问题,而不是 APEX 问题。也许您想要重复行:)。防止这种情况的正确方法是在部门名称列上创建一个唯一约束 - 但这可能不是该课程的内容,因此创建它的人都错过了它。
    猜你喜欢
    • 2022-11-23
    • 2020-09-23
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    相关资源
    最近更新 更多