【问题标题】:Basic Oracle Procedure - Refuses to work基本 Oracle 程序 - 拒绝工作
【发布时间】:2013-05-06 18:19:31
【问题描述】:

我正在尝试在 Oracle 中实现一个简单的过程,但我真的不知道该怎么做。

Create  PROCEDURE Getcustomername33(

wcust_id varchar2                   --Input parameter ,  Studentid of the student 

)
AS
BEGIN
SELECT Firstname+' '+Lastname FROM customer WHERE cust_id=wcust_id
END​;​

这给出了一个错误,说 sql 命令不正确。但是,如果我再次运行它,它会说名称已被现有对象使用。所以它故意创建一个无法正常工作的程序?我不明白这怎么这么难。它有时还会说“遇到以下符号之一时遇到了”文件结尾“:(开始案例声明”等

非常感谢您的帮助,

【问题讨论】:

    标签: oracle procedure


    【解决方案1】:

    连接在 PLSQL 中不能这样工作,你应该这样做:

    Firstname || ' ' || Lastname
    

    【讨论】:

      【解决方案2】:

      使用这个

      Create OR UPDATE PROCEDURE Getcustomername33(
      
      wcust_id varchar2                   --Input parameter ,  Studentid of the student 
      
      )
      AS
      BEGIN
      SELECT Firstname || ' ' || Lastname FROM customer WHERE cust_id=wcust_id
      END​;
      

      ​我猜Oracle会保存存储过程,然后尝试编译它......你的编译失败,所以它已经存在于服务器第二次......

      【讨论】:

      • 我可以看到三个错误。这甚至不会编译。 1) “创建或更新程序”错误。 2)应该定义一个变量,并且查询应该选择到该变量中。 3) SELECT 语句末尾缺少分号。
      • @Noel 如果您看到这个问题,这是因为 2 件事 1. OP 代码中的错误以及为什么 Oracle 在未成功编译时说该对象已经存在。我的意图是回答这两个问题,而不是给出完整的工作代码。这就是为什么我认为答案也被接受了。
      猜你喜欢
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 2022-01-10
      • 2017-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多