Oracle 错误PLS-00428:此SELECT语句中应包含INTO子句
我只想在declare过程之间显示USU_USERS表,但当我尝试编译时,它会显示这个错误Oracle 错误PLS-00428:此SELECT语句中应包含INTO子句,oracle,plsql,oracle-sqldeveloper,Oracle,Plsql,Oracle Sqldeveloper,我只想在declare过程之间显示USU_USERS表,但当我尝试编译时,它会显示这个错误 DECLARE ID_UNICO VARCHAR(200) := 'H3LP'; BEGIN DECLARE VID VARCHAR2(200); VID_USER VARCHAR2(200); BEGIN VID := ID_UNICO; VID_USER := 'SOPORTE';
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;
注意:此表有多行
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用户中只有一行,那么您可以使用DBMS\u OUTPUT.PUT\u LINE来输出rowUSU用户中的各个字段。根据PL/SQL的工作方式,没有地方可以输出。如果希望在控制台上输出,并将其作为脚本执行,请删除BEGIN和END;。对不起,我更新了帖子。如果必须使用PL/SQL将输出打印到控制台,则需要显示其位于DECLARE过程中的输出上的表,然后查看及其答案。你也可以看看。这三个查询保证会产生c0或更多行。这是一个例子——不幸的是,这是一个非常糟糕的例子。您的示例应该演示在PL/SQL中执行某些操作的必要性,例如复杂的处理等。在任何情况下,几乎可以确定您将需要在PL/SQL块之外执行SQL语句,因此,该块不会是匿名的。最常见的方法是创建一个表函数,一个返回某种类型的表的函数;然后,在标准SQL语句中,您可以从该函数中选择,实际上是从其表输出中选择。你的问题,一如所问,毫无意义。