Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103790219
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-20 21:43:02

作者:      文章来源:    

 

  方法二使用方法:

  在脚本中加入如下编码(以DEV?TEST为例):

  long ln—id

  string ls—name

  ln—id=100

  DECLARE test PROCEDURE FOR DEV.TEST(:ln—id);

  //test有一个IN参数,一个OUT参数

  EXECUTE test;

  FETCH test INTO:ls—name;

  方法三使用方法:

  根据输入输出参数的不同,PB中的动态SQL语句有四种格式:1)无输入输出参数;2)只有输入参数,无输出参

  数;3)有确定数目输入输出参数;4)输出结果列的数目不定。其中第1)、第2)中格式的动态SQL语句也可用来调用简

  单的存储过程。

  1)没有输入输出参数的存储过程。例如DEV?DEMO1存储过程没有输入输出参数,可用下列语句调用:

  sqlstring=″EXECUTE DEMO1()″

  EXECUTE IMMEDIATE:sqlstring;

  2)只有输入参数的存储过程。例如DEV.DEMO2(name IN VARCHAR2,birthday IN DATE)

  PREPARE SQLSA FROM ″EXECUTE DEMO2(?,?);″

  EXECUTE SQLSA USING:ls—name,:ldt—birthday;

  如果是7?2以下版本的Oracle,可用方法四PBDMBS.Put—Line()函数调用建立存储过程。此时需选上Database Profile中的PBDBMS复选框。

  存储过程作为数据窗口的数据源

  以一个简单数据窗口(显示服务器的系统时间)为例说明怎样创建存储过程作为数据源的数据窗口。

  1)在某个包(如PACK—TYPE)中定义日期类型的Recorder自定义数据类型datarec;

  2)创建返回系统时间的存储过程:

  PROCEDURE get—sysdata(sysdt IN OUT PACK-TYPE

  .datarec)IS

  BEGIN

  open sysdt for select sysdate from dual;

  END;

  3)新建数据窗口,数据源选择Stored Procedure;

  4)在随后的Select Stored Procedure对话框中选择get—sysdate即可。

  如果作为数据源的存储过程有IN参数,则这些参数就是数据窗口的检索参数(Retrieve Argument)。

阅读(369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~