pl/sql问题求大神指导

ddwren 2014-05-06 02:12:52
刚毕业的时候 由于做的是银行的项目,所以使用了很多的pl/sql(这里说的pl/sql是过程化语言而不是我们经常用的那个工具),当时是写好的文件直接导进Oracle,现在想学习下
求大神指导
如何实现从创建包到function再到调用的过程 可以使用很简单的例子展示下

!!!!!!!!!!!!
...全文
253 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
法师csdn 2014-05-08
  • 打赏
  • 举报
回复
Plsql是工具啊,没看懂你的问题
ddwren 2014-05-08
  • 打赏
  • 举报
回复
都执行了 是同一个用户执行的
小灰狼W 2014-05-08
  • 打赏
  • 举报
回复
引用 7 楼 ddwren 的回复:
[quote=引用 2 楼 wildwave 的回复:] 最简单的哈,让我有种写微小说的感觉 create package pk_1 is function fun_1(a in varchar2) return varchar2; end; / create package body pk_1 is function fun_1(a in varchar2) return varchar2 as begin return a||'_test'; end; end; / 调用 select pk_1.fun_1('hello_world') from dual;
不报错 执行成功 但是body的名称好奇怪 有空你看下撒[/quote] 为什么说奇怪?名字只是自己起的,举个栗子而已。调用正常就没问题了
CT_LXL 2014-05-08
  • 打赏
  • 举报
回复
引用 8 楼 ddwren 的回复:
[quote=引用 3 楼 zlloct 的回复:] [quote=引用 楼主 ddwren 的回复:] 刚毕业的时候 由于做的是银行的项目,所以使用了很多的pl/sql(这里说的pl/sql是过程化语言而不是我们经常用的那个工具),当时是写好的文件直接导进Oracle,现在想学习下 求大神指导 如何实现从创建包到function再到调用的过程 可以使用很简单的例子展示下 !!!!!!!!!!!!
--包头
create or replace package test is

  function test1(pi_num number) return varchar2;

end test;
--包体
create or replace package body test is
  function test1(pi_num number) return varchar2 is
    l_num     number;
    po_return varchar2(20);
  begin
    l_num := pi_num;
    if l_num >= 0 then
      po_return := 'more than 0';
    else
      po_return := 'less than 0';
    end if;
    return po_return;
  
  end;

begin
  null;
end test;
调用及结果: SQL> select test.test1(20) from dual; TEST.TEST1(20) -------------------------------------------------------------------------------- more than 0[/quote] 调用报错的时候报错哎 包函数无效[/quote] 你创建包和调用包是同一个用户进行的吗? 你的包头和包体都创建了吗?
ddwren 2014-05-08
  • 打赏
  • 举报
回复
引用 3 楼 zlloct 的回复:
[quote=引用 楼主 ddwren 的回复:] 刚毕业的时候 由于做的是银行的项目,所以使用了很多的pl/sql(这里说的pl/sql是过程化语言而不是我们经常用的那个工具),当时是写好的文件直接导进Oracle,现在想学习下 求大神指导 如何实现从创建包到function再到调用的过程 可以使用很简单的例子展示下 !!!!!!!!!!!!
--包头
create or replace package test is

  function test1(pi_num number) return varchar2;

end test;
--包体
create or replace package body test is
  function test1(pi_num number) return varchar2 is
    l_num     number;
    po_return varchar2(20);
  begin
    l_num := pi_num;
    if l_num >= 0 then
      po_return := 'more than 0';
    else
      po_return := 'less than 0';
    end if;
    return po_return;
  
  end;

begin
  null;
end test;
调用及结果: SQL> select test.test1(20) from dual; TEST.TEST1(20) -------------------------------------------------------------------------------- more than 0[/quote] 调用报错的时候报错哎 包函数无效
ddwren 2014-05-08
  • 打赏
  • 举报
回复
引用 2 楼 wildwave 的回复:
最简单的哈,让我有种写微小说的感觉 create package pk_1 is function fun_1(a in varchar2) return varchar2; end; / create package body pk_1 is function fun_1(a in varchar2) return varchar2 as begin return a||'_test'; end; end; / 调用 select pk_1.fun_1('hello_world') from dual;
不报错 执行成功 但是body的名称好奇怪 有空你看下撒
ddwren 2014-05-08
  • 打赏
  • 举报
回复
引用 5 楼 accp12580 的回复:
Plsql是工具啊,没看懂你的问题
PL/SQL是oracle的过程化语言
陶小淘 2014-05-06
  • 打赏
  • 举报
回复
三楼正解,学习了!
CT_LXL 2014-05-06
  • 打赏
  • 举报
回复
引用 楼主 ddwren 的回复:
刚毕业的时候 由于做的是银行的项目,所以使用了很多的pl/sql(这里说的pl/sql是过程化语言而不是我们经常用的那个工具),当时是写好的文件直接导进Oracle,现在想学习下 求大神指导 如何实现从创建包到function再到调用的过程 可以使用很简单的例子展示下 !!!!!!!!!!!!
--包头
create or replace package test is

  function test1(pi_num number) return varchar2;

end test;
--包体
create or replace package body test is
  function test1(pi_num number) return varchar2 is
    l_num     number;
    po_return varchar2(20);
  begin
    l_num := pi_num;
    if l_num >= 0 then
      po_return := 'more than 0';
    else
      po_return := 'less than 0';
    end if;
    return po_return;
  
  end;

begin
  null;
end test;
调用及结果: SQL> select test.test1(20) from dual; TEST.TEST1(20) -------------------------------------------------------------------------------- more than 0
小灰狼W 2014-05-06
  • 打赏
  • 举报
回复
最简单的哈,让我有种写微小说的感觉 create package pk_1 is function fun_1(a in varchar2) return varchar2; end; / create package body pk_1 is function fun_1(a in varchar2) return varchar2 as begin return a||'_test'; end; end; / 调用 select pk_1.fun_1('hello_world') from dual;
华而不实 2014-05-06
  • 打赏
  • 举报
回复
不太明白,lz想要什么。。是导入数据库对象吗?imp?

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧