oracle中的程序无法运行 [英] Procedure in oracle wont run

查看:48
本文介绍了oracle中的程序无法运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  -- 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.

      1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆