当前位置: 首页 > 知识库问答 >
问题:

(忽略语句)和(缺少表达式)错误

周涵畅
2023-03-14

我是数据库领域的初学者,我的任务是编写一个在嵌套表中添加记录的过程,这是。我写的sql文件:

    CREATE OR REPLACE PROCEDURE TT1_AJOUTE_PERSON_DANS_ALBUM (
        numPersonnage   IN NUMBER,
        numAlbum        IN NUMBER
    ) IS
        tmpPersonnages TT1_personnages_ntab_type;
    BEGIN
        SELECT personnages
        INTO tmpPersonnages
        FROM TT1_Album
        WHERE (num = numAlbum);
        
        -- si la table imbriqué 'nested table' personnes est NULL on la crée
        IF tmpPersonnages IS NULL THEN
            UPDATE TT1_Album
            SET personnages = NEW TT1_personnages_ntab_type()
            WHERE (num = numAlbum);
        END IF;
        
        -- on va ajouter dans la tableau imbriqué 'nested table' (personnages)
        -- de la table des albums (TT1_Album)
        -- identifié par le numéro d'album passé en paramétre
        INSERT INTO TABLE (
            SELECT a.personnages
            FROM TT1_Album a
            WHERE (a.num = numAlbum)
        ) VALUES (
            -- appel du constructeur
            -- on utilise REF() pour récupérer l'OID de la ligne sélectionée
            -- de la table des personnages (TT1_personnage)
            -- le personnage est identifié par le numéro de personne passé en paramétre
            SELECT REF(p)
            FROM TT1_personnage p
            WHERE (p.num = numPersonnage)
        );
    END;
    /

当我跑步的时候。sql文件我收到一条警告消息(使用编译错误创建的过程)当我运行时(显示错误过程TT1_ajute_PERSON_DANS_ALBUM;)我得到错误(忽略语句)和(缺少表达式

Errors for PROCEDURE TT1_AJOUTE_PERSON_DANS_ALBUM:

LINE/COL ERROR
-------- -----------------------------------------------
22/2     PL/SQL: SQL Statement ignored
31/3     PL/SQL: ORA-00936: missing expression

我已经在谷歌上搜索过这个问题,大多数情况下都是因为打字错误,但我不认为这是我的情况!以下是表(TT1_相册)和(TT1_personnage)的说明

SQL> desc TT1_Album;
 Name                                      Null?    Type
 ----------------------------------------- -------- -------------------------

  NUM                                       NOT NULL NUMBER
 TITRE                                     NOT NULL VARCHAR2(40)
 ANNEE                                     NOT NULL NUMBER
 PERSONNAGES                                        TT1_PERSONNAGES_NTAB_TYPE
SQL> desc TT1_personnage;
 Name                                      Null?    Type
 ----------------------------------------- -------- ------------

  NUM                                       NOT NULL NUMBER
 NOM                                                VARCHAR2(20)
 PRENOM                                             VARCHAR2(20)
 PROFESSION                                         VARCHAR2(20)
 SEXE                                               CHAR(1)
 GENRE                                              VARCHAR2(7)

共有1个答案

滕渝
2023-03-14

se insert的以下语法:

INSERT INTO table
(column1, column2, ... column_n )
SELECT expression1, expression2, ... expression_n
FROM source_table
[WHERE conditions];

对于你的例子:

INSERT INTO TT1_Album (personnages, num)
SELECT REF(p), numAlbum           
FROM TT1_personnage p
WHERE p.num = numPersonnage;
 类似资料:
  • 问题内容: 我收到以下查询的ORA:00936错误。请让我知道查询中的问题 问题答案: SELECT convert(DATE,r.created_dt)作为created_dt 问题在于错误使用了 CONVERT 函数。请参阅文档。 我猜您正在尝试转换数据类型,可以使用 TO_DATE 将字符串转换为日期。或者, TO_CHAR 反之亦然。

  • 问题内容: 下面我正在创建表。 当我尝试更新数据库表时,这是下面的UPSERT_SQL查询,我总是在 获取java.sql.SQLException:ORA-00936:缺少表达式 。我检查了我的SQL,找不到找不到表达式的地方。下面的SQL有问题吗? 从下面开始,我执行该UPSERT_SQL语句。 问题答案: 是的,SQL有点问题,这是您在 FROM dual 之前写了一个逗号。这导致Oracl

  • 我们在前面的小节中,已经学习了变量和运算符。有了这些前置知识,我们就可以学习表达式、语句和块了。 运算符可用于构建表达式,表达式可以进行值的计算,它是语句的核心组成部分;而语句是指令式编程语言中最小的独立元素;多条语句又可以组成语句块。本小节我们将学习表达式的概念和常用分类,也将了解到什么是语句和块。 1. 表达式 1.1 概念 表达式,是由数字、运算符、数字分组符号(括号)、自由变量和约束变量等

  • rust是一个基于表达式的语言,不过它也有语句。rust只有两种语句:声明语句和表达式语句,其他的都是表达式。基于表达式是函数式语言的一个重要特征,表达式总是返回值。 声明语句 rust的声明语句可以分为两种,一种为变量声明语句,另一种为Item声明语句。 变量声明语句。主要是指let语句,如: let a = 8; let b: Vec<f64> = Vec::new(); let (a, c)

  • 本节介绍SQL表达式语言的API引用。有关其用法的完整介绍,请参阅 SQL表达式语言教程(1.x API) . 列元素和表达式 列元素基础构造函数 列元素修饰符构造函数 列元素类文档 操作员参考 比较运算符 在比较中 在值列表中 表达式中为空 不在 表达式中的元组 子查询输入 身份比较 字符串比较 管柱密封 字符串匹配 字符串更改 算术运算符 使用连词和否定词 连接运算符 操作员自定义 可选择文件

  • 问题内容: 我有这个查询 引发ORA-00936缺少表达式的allow查询有什么问题?任何人?任何帮助将不胜感激…在第一个顺序的开头处,列:80处引发错误: 问题答案: 您的查询可以大大简化。它具有诸如子查询的额外层和在子查询中不必要的东西。您想做什么就可以: