Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7131447
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2010-05-09 12:27:33

** 如何在ABAP里面通过Native SQL实现Oracle的函数创建与调用、存储过程的创建与调用、游标 **
 
REPORT  z_barry_test NO STANDARD PAGE HEADING .
 
DATA: str1(128),str2(128),str3(128).
 
***创建函数
EXEC SQL.
  create or replace function fun_barrytest (p1_in varchar2,p2_in varchar2)
  return varchar2
  is
     p3_out varchar2(64);
  begin
    p3_out := p1_in||p2_in ;
    return(p3_out);
  end fun_barrytest;
ENDEXEC.
 
***调用函数
str2 = '123' .str3 = 'abc'.
EXEC SQL.
  select fun_barrytest(:str2,:str3) from dual into :str1
ENDEXEC.
WRITE :str1 .
 
 
***游标的使用
str1 = 'AA'.
DATA:  connid   TYPE spfli-connid,
       cityfrom TYPE spfli-cityfrom,
       cityto   TYPE spfli-cityto.
EXEC SQL.
  OPEN dbcur FOR
    SELECT connid, cityfrom, cityto
           FROM spfli
           WHERE carrid = :str1
ENDEXEC.
DO.
  EXEC SQL.
    FETCH NEXT dbcur INTO :connid, :cityfrom, :cityto
  ENDEXEC.
  IF sy-subrc <> 0.
    EXIT.
  ELSE.
    WRITE: / connid,cityfrom,cityto .
  ENDIF.
ENDDO.
EXEC SQL.
  CLOSE dbcur
ENDEXEC.
 
 
阅读(5066) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-05-12 15:03:10

白哥,你是要写还是不写啊?