oracle中的程序无法运行 [英] Procedure in oracle wont run
问题描述
-- procedure--
CREATE OR REPLACE PROCEDURE getDBUSERByUserId(
p_userid IN DBUSER.USER_ID%TYPE,
o_username OUT DBUSER.USERNAME%TYPE,
o_createdby OUT DBUSER.CREATED_BY%TYPE,
o_createddate OUT DBUSER.CREATED_DATE%TYPE)
IS
BEGIN
SELECT USERNAME , CREATED_BY
INTO o_username, o_createdby
**FROM DBUSER WHERE USER_ID = p_userid;
END;
DECLARE
o_username DBUSER.USERNAME%TYPE;
o_createdby DBUSER.CREATED_BY%TYPE;
o_date DBUSER.CREATED_DATE%TYPE;
BEGIN
GETDBUSERBYUSERID(1001,o_username,o_createdby,o_date);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
DBMS_OUTPUT.PUT_LINE('createdby : ' || o_createdby);
END;
- DBUSER 表列:
- 用户 ID,
- 用户名,
- CREATED_BY,
CREATED_DATE,
- DBUSER TABLE COLUMNS:
- USER_ID,
- USERNAME,
- CREATED_BY,
CREATED_DATE,
错误报告 -ORA-06550:第 11 行,第 3 列:PLS-00103:在期望以下之一时遇到符号文件结束":
Error report - ORA-06550: line 11, column 3: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
;符号;"被替换为文件结尾"以继续.
; The symbol ";" was substituted for "end-of-file" to continue.
- 00000 - 第 %s 行,第 %s 列:\n%s"*原因:通常是 PL/SQL 编译错误.*行动:'
我正在尝试测试一个程序,因为我正在自学如何完成这些程序,因为我的学校缺乏基础知识以外的任何教学.我在 Oracle sqldeveloper 程序中运行此代码,但我无法弄清楚到达文件末尾意味着什么,因为我安装了 1 个数据成员来匹配里面的代码.我不想显示它的添加日期,所以它不在声明语句中.
I am trying to test out a procedure because I am teaching myself how to due them because of lack of teaching at my school on anything past the basics. I am running this code inside of Oracle sqldeveloper program, and I can not figure out what it means by I am reaching the end of the file, because I installed a 1 data member to match the code inside. I do not want to show the date it was added so that is why it is not in the declare statement.
推荐答案
如果您将显示的所有内容作为脚本运行,则在 PL/SQL 的每个独立部分之后都需要一个
/
代码:If you're running everything you've shown as a script, you need a
/
after each independent section of PL/SQL code:CREATE OR REPLACE PROCEDURE getDBUSERByUserId( p_userid IN DBUSER.USER_ID%TYPE, o_username OUT DBUSER.USERNAME%TYPE, o_createdby OUT DBUSER.CREATED_BY%TYPE, o_createddate OUT DBUSER.CREATED_DATE%TYPE) IS BEGIN SELECT USERNAME , CREATED_BY INTO o_username, o_createdby FROM DBUSER WHERE USER_ID = p_userid; END; / DECLARE o_username DBUSER.USERNAME%TYPE; o_createdby DBUSER.CREATED_BY%TYPE; o_date DBUSER.CREATED_DATE%TYPE; BEGIN GETDBUSERBYUSERID(1001,o_username,o_createdby,o_date); DBMS_OUTPUT.PUT_LINE('username : ' || o_username); DBMS_OUTPUT.PUT_LINE('createdby : ' || o_createdby); END; /
本文档如果用于 SQL*另外,但主要也适用于 SQL Developer.
This documentation if for SQL*Plus, but mostly applies to SQL Developer too.
这篇关于oracle中的程序无法运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!