当前位置:首页 » 数据仓库 » oracle数据库api
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle数据库api

发布时间: 2022-12-25 09:38:20

⑴ 关于oracle数据库加密的函数

Oracle 提供两种加密方式:
a)加密 API 例如包 和 dbms_crypto 使用这些包,可以构建我们自己的基础架构,对数据进行加密。 这种方法的灵活性最强,但是构建和管理却相当复杂。
b)透明的数据加密是 Oracle 数据库 ;使用该特性后,就不必手动进行密码管理了。
数据库管理密码,但是正如名称所指,加密是透明的——数据仅仅以加密的方式存储而已。在Oracle10g中出现了dbms_crypto替代了之前的dbms_obfuscation_toolkit,DBMS_CRYPTO增加了若干新的加密算法、哈希算法。
DBMS_CRYPTO还撤销了对于public组的执行权限。

⑵ 什么是Oracle 数据源

简而言之:数据源DS,就是数据来源DS,也就是数据库嘛!!
所以有个DSN(Data Source Name)数据源名称.也就是在系统odbc中注册的名称!
ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用sql来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

一个完整的ODBC由下列几个部件组成:

应用程序(Application)。

ODBC管理器(Administrator)。该程序位于Windows95控制面板(ControlPanel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

驱动程序管理器(DriverManager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

ODBCAPI。

ODBC驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

各部件之间的关系如图下图所示:

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBCAPI不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBCAPI的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

在访问ODBC数据源时需要ODBC驱动程序的支持。用VisualC++5.0安装程序可以安装SQLServer、Access、Paradox、dBase、FoxPro、Excel、Oracle和MicrosoftText等驱动程序.在缺省情况下,VC5.0只会安装SQLServer、Access、FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC5.0的安装程序并选择所需的驱动程序。

⑶ oracle数据库的警告日志如何查看

告警日志文件是一类特殊的跟踪文件(trace file)。告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称。数据库告警日志是按时间顺序记录message和错误信息。
http://www.cnblogs.com/kerrycode/p/3899558.html

⑷ 从网络API接口上获取显示的字符数据,存储到本地Oracle或MySQL数据库

很多语言都可以做到,php/nodejs/java/python.....

如果你这些都不会,会shell 也可以做到,写入mysql没问题,oracle我不太知道行不行

我给你一个大概的shell例子,你应该就明白了

从json接口获得的数据是这些:

{
"data":[
{
"opentimestamp":1520237469,
"opentime":"2018-03-0516:11:09",
"opencode":"*,6,4,7,7",
"expect":"20180305061"
},
{
"opentimestamp":1520236868,
"opentime":"2018-03-0516:01:08",
"opencode":"*,4,8,2,9",
"expect":"20180305060"
},
{
"opentimestamp":1520236269,
"opentime":"2018-03-0515:51:09",
"opencode":"*,7,8,4,9",
"expect":"20180305059"
},
{
"opentimestamp":1520235666,
"opentime":"2018-03-0515:41:06",
"opencode":"*,3,9,9,9",
"expect":"20180305058"
},
{
"opentimestamp":1520235069,
"opentime":"2018-03-0515:31:09",
"opencode":"*,1,0,4,9",
"expect":"20180305057"
}
],
"info":"演示接口隐藏第1位数据,实时接口请访问www.opencai.net查询、购买或续费",
"code":"cqssc",
"rows":5
}

shell 脚本如下,如果你想获得这个json的data value

#!/bin/sh

result=$(curl-A"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)""http://t.apiplus.net/newly.do?code=cqssc&format=json")
echo$result|jq-r".data"

如果你想获得data 的第一个json数据

#!/bin/sh

result=$(curl-A"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)""http://t.apiplus.net/newly.do?code=cqssc&format=json")
echo$result|jq-r".data[0]"

如果你想获得data的第一个json数据opentimestamp的value

#!/bin/sh

result=$(curl-A"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.0)""http://t.apiplus.net/newly.do?code=cqssc&format=json")
echo$result|jq-r".data[0]"|jq-r.opentimestamp

如果你想写入到mysql可以参考下面的语句:

mysql -uroot -proot test -e "insert into ttest (key,value) values ('testkey','testvalue');"

⑸ Oracle与mysql数据库相比到底强在哪里

事实上很多应用项目, 刚起步的时候用MYSQL数据库基本上能实现各种功能需求,随着应用用户的增多,数据量的增加,MYSQL渐渐地出现不堪重负的情况:连接很慢甚至宕机,于是就有把数据从MYSQL迁到ORACLE的需求。MySQL作为开源数据库,也是Oracle旗下的产品。Oracle的数据库到底强在哪里呢?Oracle的优势:

1、兼容性:Oracle产品采用标准SQL,并经过美国u构架标准技术所(NIST)测试,与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。

2、可移植性:Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在多种 大、中、小型机上,可在多种操作系统下工作。

3、可联结性:Oracle能与多种通讯网络相连,支持各种协议。

4、高生产率:Oracle产品提供了多种开发工具,能极大地方使用户进行进一步的开发。

5、开放性:Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。

MySQL的优势:

1、性能卓越,服务稳定,很少出现异常宕机;

2、开放源代码无版本制约,自主性及使用成本低;

3、 历史 悠久,社区和用户非常活跃,遇到问题及时寻求帮助;

4、软件体积小,安装使用简单且易于维护,维护成本低;品牌口碑效应;

5、支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,Java很好的支持

综上所述,目前两种数据库都很流行, 只不过应用场合不同,会了Oracle学习Mysql会更简单一些, 重庆思庄作为oracle数据库运维公司,依附运维的优势,讲师均是在职工程师,也是oracle金牌讲师,所以思庄是教实用技术的单位,当然我们也是官方授权培训认证的机构,6-12人精品小班授课,能更全方位的进行系统学习,oracle作为全球做大的数据库厂商,学习oracle数据库还是势在必行!

⑹ 访问Oracle数据库与sqlapi C问题,怎么解决

不正确,要先在客户端
配置文件
中配置数据库名,ip在那里。用户名/密码@数据库名称在本地配置tnsname打开C:\oracle\ora92\network\ADMIN\tnsnames.ora加入如下参数。ora=(
DESCRIPTION
=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.99)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ora)))注:(192.168.1.99=所要访问
oracle数据库
IP地址ora=所要访问数据库名称)然后打开CMD,输入sqlplususer/password@ora

⑺ 如何在Oracle/2000中调用Windows API函数

1.初始化外部函数
就是说明包含外部函数的动态链接库的位置,并从中分离出外部函数的原型,并将外部函数中主语言的数据类型和PL/SQL数据类型做一一对应的匹配。这是在包体(PackageBody)中进行的。具体分以下几步:

(1)用OQA_FFI.LOAD_LIBRARY得到包含外部函数的动态链接库的库柄,此时需提供动态链接库的名字和位置。

(2)用ORA_FFI.REGISTER_FUNCTION得到外部函数的函数柄,这时需提供动态链接库的库柄和外部函数名。

(3)用ORA_FFI.REGISTER_PARAMETER来注册外部函数的参数类型,对每一个参数都要提供它的外部函数柄和相应的PL/SQL数据类型。参数注册的顺序必须与它们出现在外部函数原型中的顺序一致。

(4)用ORA_FFI.REGISTER_RETURN来注册外部函数的返回值类型,这时需要提供它的外部函数柄和相应的PL/SQL数据类型。

2.将外部函数和一个PL/SQL子程序相关联
一个和外部函数建立关联的PL/SQL子程序,实际上指明了外部函数的内存地址,每次调用这个子程序,实际上是调用与它相对应的外部函数。具体步骤为:

(1)用ORA_FFI.FIND_FUNCTION或ORA_FFI.REGISTER_FUNCTION得到一个函数柄。

(2)在PL/SQL包体的声明部分,定义一个PL/SQL子程序,它的第一个参数是类型为ORA_FFI.FUNCHANDLETYPE,接下来是依次对应外部函数参数的PL/SQL数据类型的参数。

(3)在这个PL/SQL子程序中加入一个PRAGMA接口。PRAGMA声明就是通过将控制转到一个内存地址,来激活这个外部函数。

3.生成一个模仿外部函数的原型的PL/SQL子程序。
这个子程序就是用户可见的外部函数的PL/SQL接口,用户按照它的参数类型和返回值类型来使用外部函数,具体步骤为:

(1)在包体的声明部分,定义一个PL/SQL子程序,它的参数和返回值是和外部函数对应的PL/SQL类型。这就是模仿外部函数原型的一个子程序。

(2)在这个子程序中调用与上步生成的与外部函数相关联的PL/SQL子程序。

(3)在PL/SQL包的说明(PackageSpefication)部分,输入这个PL/SQL子程序的原型。

下面是一个完整的为WindowsAPI函数winexec建立PL/SQL接口的例子:

PACKAGEWinExecIS
FUNCTIONWinExec(ExecfileINVARCHAR2,
commandINPLS_INTEGER)
RETURNPLS_INTEGER;
END;/*在包说明部分,是模仿外部
函数原型的PL/SQL函数原型说明*/
PACKAGEBODYWinExecIS
lh_USERora_ffi.libHandleType;/*定义库柄类型变量*/
fh_WinExecora_ffi.funcHandleType;/*定义函数柄类型变量*/

FUNCTIONi_WinExec(funcHandleINora_ffi.funcHandleType,
ExecfileINOUTVARCHAR2,
commandINPLS_INTEGER)
RETURNPLS_INTEGER;

PRAGMAINTERFACE(C,i_WinExec,11265);
/*步骤2将一个PL/SQL子程序与外部函数相关联*/

FUNCTIONWinExec(ExecfileINVARCHAR2,
commandINPLS_INTEGER)
RETURNPLS_INTEGER
IS
execfile_lVARCHAR2(512):=Execfile;
rcPLS_INTEGER;
BEGIN
rc:=i_WinExec(fh_WinExec,
execfile_l,
command);

RETURN(rc);
END;
/*步骤3中PL/SQL模仿函数的定义,
它实际上就是调用步骤2中与外部函数建立关联的那个函数*/
BEGIN
BEGIN
lh_USER:=ora_ffi.find_library('Kernel32.dll');
EXCEPTIONWHENora_ffi.FFI_ERRORTHEN
lh_USER:=ora_ffi.load_library(NULL,'kernel32.dll');
END;/*得到动态链接库的库柄*/

fh_WinExec:=ora_ffi.register_function
(lh_USER,'WinExec',ora_ffi.PASCAL_STD);
/*得到外部函数的函数柄*/
ora_ffi.register_parameter(fh_WinExec,
ORA_FFI.C_CHAR_PTR);/*参数注册,原类型为LPCSTR*/
ora_ffi.register_parameter(fh_WinExec,
ORA_FFI.C_INT);/*参数注册,原类型为UINT*/

ora_ffi.register_return(fh_WinExec,
ORA_FFI.C_INT);/*返回值注册,原类型为BOOL*/

ENDWinExec;

可以将多个外部函数的PL/SQL接口放在一个包内。要在Developer/2000的FormDesigner中使用这些外部函数,只要把包含这一程序包的程序库(.PLL)附加进来,使用包名.函数名就可激活这个外部函数。

例如:WinExec.WinExec('c:\windows\notepad.exe',0)

具体WindowsAPI函数数据类型和PL/SQL数据类型的转换可参照Developer/2000中ProcereBuilder帮助文件中对ORA_FFI软件包的详细介绍。

⑻ 有人用过oracle的oci么

oracle调用接口(oracle Call Interface简称oci)提供了一组可对oracle数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取oracle数据库的目的。
在普通的情况下,用户可以通过sql和PL/sql来访问数据库中的数据。oracle数据库除了提供sql和PL/sql来访问数据库外,还提供了一个第三代程序设计语言的接口,用户可以通过C、cobol、fortran等第三代语言来编程访问数据库。oci就是为了实现高级语言访问数据库而提供的接口。oci允许开发者在程序里使用sql和PL/sql来访问数据库。开发者可以使用第三代语言来编写程序,而使用oci来访问数据库。
oci是由一组应用程序开发接口(api)组成的,ORACLE提供api的方式是提供一组库。这组库包含一系列的函数调用。这组函数包含了连接数据库、调用SQL和事务控制等。在安装dbms server或者客户端的时候,就安装了OCI。

OCI开发方法实际上是将结构化查询语言(SQL)和第三代程序设计语言相结合的一种方法。对数据库的访问是通过调用OCI库函数实现的,若将C语言作为宿主语言,那么ORACLE数据库调用其实就是C程序中的函数调用,一个含OCI调用的C程序其实就是用C语言编写的应用程序。这样的程序既具有SQL语言非过程性的优点又具有C语言过程性的优点,同时还可具有SQL语言的扩展,PL/SQL语言过程性和结构性的优点,因此使得开发出的应用程序具有高度灵活。