首页 热点资讯 义务教育 高等教育 出国留学 考研考公

在ABAP中如何使用native sql连接外部数据库?

发布网友 发布时间:2022-04-21 07:29

我来回答

4个回答

懂视网 时间:2022-04-07 22:29

 1.工作环境需求

    A. The operating system user <sid>adm must be able to log on to the secondary database.

    B. The R/3 table DBCON must be maintained.

    C. The correct database library ‘dboraslib.<ext>‘ must exist in the kernel directory. 
Connect  to SQL Server database Prerequisite: At least one Windows application server must be available on the R/3 system and the DBSL dynamic library (DLL) dbmssslib.dll must be installed on this server. This dll can be downloaded from the SAP Service Marketplace.

dbmssslib.dll

2. 配置连接信息

配置TCODE: dbco

任何配置信息都存储在DBCON表中.

配置示例:

A.访问MSSQL的配置示例(参见SAP Notes 1749)

CON_NAME: <my_conn_name>
DBMS: MSS
USER_NAME: <db_user>
PASSWORD:  <password>
CON_ENV: MSSQL_SERVER=<server_name> MSSQL_DBNAME=<db_name>

   db_user could be sapr3 for example if the server is running R/3.  The password field may be blocked from view by asterisks in sm30. USER_NAME can be left blank in order to use integrated security (4.6d kernel and later).  In that case make sure that the OS User running R/3 has the required privilege on the remote server.  A dummy password must be entered in sm30, it will not be used when the user name is blank.
Specifying the server name

           The server name is simply the name of the SQL Server or named instance i.e. the hostname (for a default instance), or <host>/<instname>
Starting with release 6.40 however there are some special considerations that should be taken into account.  When running with kernel release 6.40 or later, the R/3 system will prepend a protocol specifier to the server name.  Example:
   1. For a server running on the same server:
            np:<servername>
  2. For a remote server:
            tcp:<servername>
This forces the connection to be made with a named pipes and tcp/ip protocols respectively.
When specifying the server name you can override this by setting your own protocol (tcp: or np:), or you can make R/3 avoid setting any prefix by using simply :<servername> - a colon in front of the server name.

B.访问ORACLE的配置示例()

   Connection name        logical name of the connection

     DBMS                   ORA

     User name              Oracle users

     DB password            password for the above-mentioned Oracle user

     Conn.info              TNS alias

     Permanent              Usually should not be set for a secondary connection.

 

3.       程序中如何使用

例程一
report zdbcon .
data: dbn(128).
EXEC SQL.
CONNECT TO ‘DAN1‘
ENDEXEC.
EXEC SQL.
SET CONNECTION ‘DAN1‘
ENDEXEC.
EXEC SQL.
SELECT db_name() INTO :DBN FROM SVERS
ENDEXEC.
write: / ‘current database name‘, dbn. 
DAN1在DBCON表中配置
CON NAME DAN1 
DBMS MSS 
USER NAME iis_log 
PASSWORD CON ENV 
MSSQL_SERVER=tcp:###.###.###.### MSSQL_DBNAME=iislog 


例程二
Here is an example for how to connect to another server with CON_NAME=BSK.  The example assumes BSK is running R/3:

 EXEC SQL.
  CONNECT TO ‘BSK‘
ENDEXEC.
EXEC SQL.
  SET CONNECTION ‘BSK‘
ENDEXEC.
EXEC SQL.
  SELECT db_name() INTO :DBN FROM SVERS
ENDEXEC.
WRITE: / ‘current database name‘, DBN.
EXEC SQL.
  SET CONNECTION DEFAULT
ENDEXEC.
EXEC SQL.
  SELECT db_name() INTO :DBN FROM SVERS
ENDEXEC.
WRITE: / ‘current database name‘, DBN. 

abap直连第三方数据库(sqlserver,oracle)

标签:abap直连第三方数据库sqlserve   oracle   abap 直连第三方数据库   abap 操作第三方数据库表   

热心网友 时间:2022-04-07 19:37

看来阁下对oracle很不熟悉,本人精通IBM DB2,oracle(写过3年多package for IFS ERP,做过oracle业务管理员,自写过RowID online backup 系统),MSSQL管理和编程序,对oracle管理备份有相当了解,熟悉各种unix系统,深入了解系统安全漏洞,IT网络,硬件,软件,ERP无所不精(就是什么都不精).........(其实全是吹的用来,都是懂一点..)...再吹就把楼主刮上天了,建立DBlink很简单,这些都小儿科,小case.....附送他人的文章一篇, 由于历史的原因,在多数企业都同时存在多个数据库平台,在每个数据库平台上都运行着相关的一套或多套应用。随着单位业务不断扩大,如何在不影响现有应用运行的前提下,快速有效地整合这些分布在单位内部不同数据库平台上的数据,是一个困扰CIO们的问题。面对这一问题,现有解决方案大致可分为以下两种:1.在应用程序上建立连接不同数据源的数据连接,这样做要求程序员分清哪个连接是对应哪个数据库的,而且如果设计时涉及到存储过程还要按照不同数据库的要求分别编写,加重了程序员的要求。2.在数据库中设立快照,定时把其他数据源的数据复制到本地数据库,这样虽然解决了前一种方法中不同数据源的问题,但是由于是定时复制,数据不能实时同步,在实时性要求高的应用中这种方法便不能使用。由于上述两种方法都存在一定的缺点,这里介绍一种Oracle提供的解决oracle数据库与异种数据源的连接问题的解决方案—Oracle的异构服务(Heterogeneous Services)。异构服务“异构服务”是集成在Oracle 8i数据库软件中的功能,它提供了从Oracle数据库访问其他非Oracle数据库的通用技术。熟悉Oracle的读者都很清楚,Oracle提供通过建立DB Link的方法访问非本地数据库,而“异构服务”提供通过建立DB Link使你能够执行Oracle SQL查询,透明地访问其他非Oracle数据库里的数据,就像访问Oracle远程数据库一样。“异构服务”分为两种:1. 事务处理服务(Transation Service):通过事务处理服务,使用户在访问非Oracle数据库中支持事务处理功能。2. SQL服务: 通过SQL服务,使用户直接在Oracle数据库中执行对非Oracle数据库的各种SQL语句。根据异构服务代理程序的不同,“异构服务”连接方式可以分为透明网关和通用连接两种。透明网关(Transparent Gateways) 透明网关使用Oracle提供的特定网关程序来设置代理,例如连接SQL Server则必须要有SQL Transparent Gateway for SQL Server。通用连接(Generic Connectivity) 通用连接又分为ODBC连接和OLE DB连接两种,其连接方法和透明网关没有本质区别,只不过通用连接是和数据库一起提供的功能,你不需要向Oracle购买相关的透明网关程序。连接实例这个实例的应用环境是Oracle 8.1.7,操作系统Windows 2000 Server英文版,采用通用连接的ODBC for SQL Server连接SQL Server 2000中文版。安装步骤如下:1. 安装HS部件。缺省情况下,HS服务是和Oracle 8.1.7一起安装的,你可以查询SYS用户下是否存在HS_BASE_CAPS视图,以确认HS部件是否安装,如果没有可以用相关的安装盘进行安装。2. 配置ODBC系统连接字。在控制面板选择“Data Sources (ODBC)”,在“系统DNS”内配置ODBC for SQL Server连接字(dnsora2sql)。3.配置tnsnames.ora,它位于ORACLE_HOME\NETWORK\ADMIN。在这个文件中增加如下代码:Lnk2sql =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = HOSTNAME)(PORT = 1521)))(CONNECT_DATA =(SID = hs4sql) | select * from region@ora2sql;到此我们已经完成了使用ODBC连接SQL SERVER的配置工作。总体上说,异构服务扩展了Oracle数据库连接异种数据源的能力,加强了企业数据的整合,是一个快速有效经济地整合企业内部异构数据的解决方案。

热心网友 时间:2022-04-07 20:55

DATA: F1(3), F2(3), F3(3).F3 = ' 1 '.EXEC SQL. OPEN C FOR SELECT CLIENT, ARG1 FROM AVERI_CLNT WHERE ARG2 = :F3ENDEXEC.DO. EXEC SQL. FETCH NEXT C INTO :F1, :F2 ENDEXEC. IF SY-SUBRC 0. EXIT. ENDIF. WRITE: / F1, F2.ENDDO.EXEC SQL. CLOSE CENDEXEC.如果是两个oracle数据库之间互相连接。 EXEC SQL. SELECT SUM(PROD_QTY) FROM TTUSERTB_PLAN@CSST INTO :PR_QTY WHERE WORK_ORDER = :ITAB-WORK_ORDER ENDEXEC.以上代码是 以用户 TTUSER访问 @CSST 中的TB_PLAN表,获得work_order,prod_qty这两个字段,count pr_qty是sap中变量,“:”是必不可少的,并且一定要在EXEC SQL. ENDEXEC. 中写

热心网友 时间:2022-04-07 22:30

建立一个oracle dblink后不就可使用native sql了吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com