oracle接口如何写 oracle接口怎么做

连oracle数据库用ole,连接串应该怎么写

在利用ado连接数据库之前,需要做一些准备

创新互联公司是一家集网站建设,井冈山企业网站建设,井冈山品牌网站建设,网站定制,井冈山网站建设报价,网络营销,网络优化,井冈山网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1.用#import指令引入ADO类型库

我们在stdafx.h中加入如下语句:

#import "c:program filescommon filessystemadomsado15.dll" no_namespace rename("EOF","adoEOF") 。

这一语句有何作用呢?其最终作用同我们熟悉的#i nclude类似,编译的时候系统会为我们生成msado15.tlh,ado15.tli两个C++头文件来定义ADO库。

几点说明:

(1) 您的环境中msado15.dll不一定在这个目录下,请按实际情况修改

(2) 在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。msado15.tlh(405) : warning C4146: unary minus operator applied to unsigned type, result still unsigned

2、初始化OLE/COM库环境

必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。

BOOL CMyAdoTestApp::InitInstance()

{

if(!AfxOleInit())//这就是初始化COM库

{

AfxMessageBox(“OLE初始化出错!”);

return FALSE;

}

}

3.ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。与数据库的连接就是用_ConnectionPtr接口,它的连接字符串可以是自己直接写,也可以指向一个ODBC DSN。以下的例子都测试通过,顺便写了SQL Server的例子。

BOOL CTestconDlg::ConnectDatabase()

{

CString m_server,m_data,m_uid,m_pwd;

m_server="192.168.0.24";//服务器ip或名称

m_data="crmdb";//ODBC数据源

m_uid="njcrm";//用户名

m_pwd="crmdbo";//密码

BOOL retFt=false;

HRESULT hr;

try

{

hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象

if(SUCCEEDED(hr))

{

_bstr_t connStr;

m_pConnection-CursorLocation=adUseClient;

//begin---------------Oracle ODBC 配置数据源-------------------------------------

//控制面板-管理工具-数据源(ODBC)-系统DNS-添加-Microsoft ODBC for Oracle-完成-配置……

// connStr="DSN="+m_data;

// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)m_uid,(_bstr_t)m_pwd,adConnectUnspecified);

//end---------------Oracle ODBC 配置数据源---------------------------------------

//begin---------------Oracle 标准安全级别---------------------------------------

// connStr="Provider=OraOLEDB.Oracle;User ID=njcrm;Password=crmdbo;Data Source=192.168.0.24;";

// m_pConnection-Open(_bstr_t(connStr),(_bstr_t)_T(""),(_bstr_t)_T(""),adConnectUnspecified);

//end---------------Oracle 标准安全级别---------------------------------------

//begin---------------Oracle 微软格式----------------------------------

oracle ebs api怎么用

1.创建Product Family

Product Family用于管理几个功能相近的Product(也可以立即为模块),统一管理客户化的Webservice接口

begin

-- Call the procedure

ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'os_xxx',

x_pseudo_product_flag = 'N',

x_product_family_flag = 'Y',

x_application_short_name = NULL,

x_product_name = 'Oracle Xxx Suite',

x_product_family_abbreviation = NULL,

x_product_family_name = NULL,

x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd

hh24:mi:ss'),

x_currdate = to_char(SYSDATE,'yyyy-mm-dd

hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

2.注册Product,即注册Xxx University(cux)应用到产品家族中

begin

ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation = 'cux',

x_pseudo_product_flag = 'N',

x_product_family_flag = 'N',

x_application_short_name = 'CUX',

x_product_name = 'Xxx University',

x_product_family_abbreviation = NULL,

x_product_family_name = NULL,

x_aru_update_date = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_currdate = to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

3.关联Xxx University应用到产品家族Oracle Xxx Suite下

begin

-- Call the procedure

ad_pa_insert_package.insert_ad_pm_prod_family_map(x_product_abbreviation = 'cux',

x_product_family_abbreviation = 'os_xxx',

x_aru_update_date = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_currdate = TO_CHAR(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),

x_last_updated_by = -1,

x_created_by = -1);

COMMIT;

end;

4.增加一个BUSINESS_ENTITY的lookup code(应用开发员职责-应用产品 - 代码-Oracle Application Object),这个Lookup会用在下

一步的API中的@rep:category BUSINESS_ENTITY

这里增加的code为ORACLESEEKER

5.编写PL/SQL API Specification

CREATE OR REPLACE PACKAGE CUX_SUPPLIER_PKG AS

/* $Header: $ */

/*#

* This package using maintain the supplier information

* @rep:scope public

* @reproduct CUX

* @rep:lifecycle active

* @rep:displayname Supplier Approve result

* @rep:compatibility S

* @rep:category BUSINESS_ENTITY ORACLESEEKER

*/

/*#

* insert approve result

* @param apply_id apply id

* @param node_id node id

* @param node_name node name

* @param approver_id approver id

* @param approver_name approver name

* @param approve_result approve result

* @param approve_opinion approve opinion

* @param approve_date approve date

* @return a varchar

* @rep:scope public

* @rep:lifecycle active

* @rep:displayname insert supplier approve result Webservice

*/

FUNCTION f_insert_approve_result(apply_id IN NUMBER,

node_id IN NUMBER,

node_name IN VARCHAR2,

approver_id IN NUMBER,

approver_name IN VARCHAR2,

approve_result IN NUMBER,

approve_opinion IN VARCHAR2,

approve_date IN DATE) RETURN VARCHAR2;

END CUX_SUPPLIER_PKG;

需要注意Package中的注释并不是随便填写的,每一个注释都会对应到Oracle Integration Repositoy接口的说明上去,对于要注册成

Webservice的PL/SQL API必须按照要求来填写。

注释标签具体的含义需要参考《Oracle E-Business Suite Integrated SOA Gateway Developer's Guide》

6.验证PLSQL接口文件,并生成ildt文件

将编写好的PLSQL声明定义保存为.pls文件(PAUL_ITEM_PKG.pls),并将其上传到服务器应用$CUX_TOP/patch/115/sql目录下,然后执行下

边的命令生成ildt文件

/usr/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin

cuxatch/115/sql:CUX_SUPPLIER_PKG.pls:12.0=CUX_SUPPLIER_PKG.pls

7.将iLDT文件上传到Oracle Integration Repositoy

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct CUX_SUPPLIER_PKG_pls.ildt

8.在对应的Product Family和Product下就能看到你的接口

9.在Web服务调用的时候,需要有一个应用数据库用户来连接EBS数据库,因此需要创建一个具备一定权限的用户,而为了简化设置的麻烦

,Oracle提供了一个内建的用户 ASADMIN ,只要启用它并重置密码就可以了。

以sysadmin登录Oracle EBS,切换到 User Management 职责,进入Users页面,查找出asadmin用户,通过修改密码的方式激活asadmin,

并确保此用户拥有Apps Schema Connect Role职责。

由于asadmin的密码已经被重置,因此中间服务器的文件配置$INST_TOP/ora/10.1.3/j2ee/oafm/config/system-jazn-data.xml 中对应的

密码也需要修改,由于配置中的密码已被加密,我们无法提供加密后的密码,使用过OC4J的同事应该都知道,Oracle提供了一种重置这里

密码的方便方法,就是采用明文密码,在密码前添加一个警号(!),然后重启应用服务器后自动会重新加密。打开system-jazn-data.xml

文件后, 找到

user

nameASADMIN/name

display-nameDefault Apps SOA User/display-name

descriptionUsed by SOAProvider for DB connection/description

credentials{903}qMgAeO1AjQjwOJ6rIB41Sx049uG0xzhs/credentials

/user

只要将credentials的值更改为自己的密码,如我的密码设置为11111,就设置为 credentials!11111/credentials。修改完成后重启

oamf,简单的方法就是重启Oracle EBS应用服务。

附重启命令:

cd $INST_TOP/admin/scripts

01、关闭应用 sh adstpall.sh apps/apps

02、重启应用 sh adstrtal.sh apps/apps

03、关闭DB

04、重启DB

05、启动并发管理器 adcmctl.sh start apps/apps

10.为集成接口创建授权

发布到Oracle Integration Repositoy中的Web服务能够被访问必须有相应的权限才可以,这也是受到AOL安全模型限制的一个体现。

登录EBS后切换到Integrated SOA Gateway职责,在 Integration Repositoy 中找出已经上传好的客户化集成接口,选择接口过程和方法

后点击Create Grant 按钮

选择授权类型:All Users、Group of Users 和 Specific USer,下面设置为最后一种方式

11.完成以上工作后,点击Generate WSDL按钮来生成集成接口对应的Web服务WSDL信息

成功完成后可以看到如下Web服务的状态为:Generated

点击 Deploy 按钮来发布Web服务到中间服务器中,发布后Web服务的状态为: Deployed

-----------------------------------------------

12.如果在测试中报java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: For input

string: ""

执行以下操作:

cd $ORA_CONFIG_HOME/10.1.3/j2ee/forms/config/oc4j.properties

注释代理服务

#http.proxyHost=

#http.proxyPort=

重启服务

13.如果填写信息提交后会报出 wsse:FailedAuthentication 这样的错误信息,这是由于提交的Soap消息中并没有包括Oracle

Integration Repository要求的AOL安全认证,即没有Oracle EBS系统要求的用户、职责、安全组和语言信息,也就是没有进行Oracle

EBS的环境初始化

wsdl文件路径/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343

此问题可以通过修改wsdl文件来解决

01删除CUX_SUPPLIER_PKG_soap.wsdl中

element name="SOAHeader"

complexType

sequence

element name="Responsibility" minOccurs="0" type="string"/

element name="RespApplication" minOccurs="0" type="string"/

element name="SecurityGroup" minOccurs="0" type="string"/

element name="NLSLanguage" minOccurs="0" type="string"/

element name="Org_Id" minOccurs="0" type="string"/

/sequence

/complexType

/element

02删除CUX_SUPPLIER_PKG_soap_http.wsdl中

element name="SOAHeader"

complexType

sequence

element name="Responsibility" minOccurs="0" type="string"/

element name="RespApplication" minOccurs="0" type="string"/

element name="SecurityGroup" minOccurs="0" type="string"/

element name="NLSLanguage" minOccurs="0" type="string"/

element name="Org_Id" minOccurs="0" type="string"/

/sequence

/complexType

/element

修改后点击invoke,如出现“处理服务时出错”,进行如下处理

/ebsr12/test/inst/apps/TEST_scmdev/soa/PLSQL/4343/F_INSERT_APPROVE_RESULT.wsdl

查看这个文件的内容

jcaperation

PackageName=”ORACLESEEKER_DEPT_PKG”

ProcedureName=”ADD_DEPARTMENT”

IRepInternalName=”PLSQL:ORACLESEEKER_DEPT_PKG:ADD_DEPARTMENT”

IRepOverloadSeq=”1〃

InteractionSpec=”oracle.tip.adapter.apps.AppsStoredProcedureInteractionSpec”

/jcaperation

oracle 数据接口

完整的屏蔽代码,还是屏蔽代码的一部分,如果是完整的屏蔽代码,那么用not in就行。

数字代码,不应该只是屏蔽一部分吧。

Oracle EBS 的接口方式是什么样的?与 DBLINK 有什么不同

1、标准接口表2、标准API前者例如AP的发票接口表,供应商、客户接口表,具体实现方式是,将数据按照接口表规格准备到接口表中,然后运行标准的import程序将接口表数据导入到Oracle EBS中(即各接口表对应的正式table中)。

而例如银行、分行、银行帐户相关API,一般通过客户化程序,调用此类API实现将数据导入系统,此时一般也会新建一些客户化staging table,先将外部数据准备到staging table后,再使用客户化程序,调用API将资料导入Oracle EBS中。

通常,“Oracle EBS的接口方式”指的是数据进入Oracle EBS的方式,主要有两类技术:

1、标准接口表

2、标准API

前者例如AP的发票接口表,供应商、客户接口表,具体实现方式是,将数据按照接口表规格准备到接口表中,然后运行标准的import程序将接口表数据导入到Oracle EBS中(即各接口表对应的正式table中)。

而例如银行、分行、银行帐户相关API,一般通过客户化程序,调用此类API实现将数据导入系统,此时一般也会新建一些客户化staging table,先将外部数据准备到staging table后,再使用客户化程序,调用API将资料导入Oracle EBS中。

而DBLINK则是数据库之间的资料交换方式,假如Oracle EBS的数据库需要与其他数据库(例如其他系统的数据库)进行资料交互,那么DBLINK是其中一个选项而已。

以上,两者直接比较没有太大意义,完全可能是应用于不同业务场景下的技术。

C#连接oracle连接字符串怎么写啊?

具体的代码如下:

/// summary

/// Oracle 的数据库连接字符串.

/// /summary

private const String connString =

@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)

(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User

Id=TEST;Password=TEST123";

192.168.1.210 是 Oracle 数据库服务器的 IP 地址

1521 是 默认的端口号

SERVICE_NAME=ORCL 意思是Oracle 数据库服务是ORCL

后面就是用户名密码了。

扩展资料:

部分描述:

abstract:可以和类、方法、属性、索引器及事件一起使用,标识一个可以扩展但不能被实体化的、必须被实现的类或方法。

as:一个转换操作符,如果转换失败,就返回null。

base:用于访问被派生类或构造中的同名成员隐藏的基类成员。

catch:定义一个代码块,在特定类型异常抛出时,执行块内代码。

checked:既是操作符又是语句,确保编译器运行时,检查整数类型操作或转换时出现的溢出。

const:标识一个可在编译时计算出来的变量值,即一经指派不可修改的值。

delegate:指定一个声明为一种委托类型。委托把方法封装为可调用实体,能在委托实体中调用。

enum:表示一个已命名常量群集的值类型。

event:允许一个类或对象提供通知的成员,他必须是委托类型。

explicit:一个定义用户自定义转换操作符的操作符,通常用来将内建类型转换为用户定义类型或反向操作,必须再转换时调用显示转换操作符。

extern:标识一个将在外部(通常不是c#语言)实现的方法。

参考资料来源:百度百科-c#

VC下利用Pro*C/C++开发Oracle接口程序

在C++中访问oracle数据库,可以采用OCI和odbc两种方式。

OCI时oracle提供的,性能很好,推荐使用。

odbc是windows提供的开放数据库访问方式,兼容很多数据库。


网站标题:oracle接口如何写 oracle接口怎么做
URL分享:http://hbruida.cn/article/hhcgop.html