错误 PLS-00428:此 SELECT 语句中需要 INTO 子句

时间:2021-03-01 18:38:37

标签: oracle plsql oracle-sqldeveloper

我只想在声明过程之间显示 USU_USERS 表,但是当我尝试编译时显示此错误

 DECLARE

 ID_UNICO VARCHAR(200) := 'H3LP';

 BEGIN
    
   DECLARE
          VID VARCHAR2(200);
          VID_USER VARCHAR2(200);
   BEGIN
          VID := ID_UNICO;
          VID_USER := 'SOPORTE';
 
          USR_SP_USERS.CREATE(
            VID => VID,
            VID_USER => VID_USER,
          );
   END;
        
    SELECT * from USU_USERS;

 END;
<块引用>

注意:这张桌子有不止一行。

1 个答案:

答案 0 :(得分:1)

PL/SQL 只是一种服务器端语言,因此无法在任何地方“显示”SELECT 语句的结果。您的 SELECT 语句需要将从数据库中检索到的值放入一个或多个变量中。让我们试着给你一些有用的东西:

DECLARE
  strID_UNICO   VARCHAR(200) := 'H3LP';
  strVID        VARCHAR2(200);
  strVID_USER   VARCHAR2(200);

  rowUSU_USERS  USU_USERS%ROWTYPE;
BEGIN
  strVID := strID_UNICO;
  strVID_USER := 'SOPORTE';

  USR_SP_USERS.CREATE(VID      => strVID,
                      VID_USER => strVID_USER);
        
  SELECT *
    INTO rowUSU_USERS
    FROM USU_USERS;
END;

请注意,如果表 USU_USERS 中有不止一行,则此代码将失败。但是,假设 USU_USERS 中只有一行,那么您可以使用 DBMS_OUTPUT.PUT_LINE 输出 rowUSU_USERS 中的各个字段。

相关问题