当前位置:文档之家› ORACLE通过gateway连接sqlserver

ORACLE通过gateway连接sqlserver

ORACLE通过gateway连接sqlserver
ORACLE通过gateway连接sqlserver

ORACLE通过gateway连接sqlserver

ORACLE平台:

Os: oracle linux 5.5(192.168.0.197)

Database: oracle 11gr2(db:fsms)

Gateway: oracle gateway 11gr2

SQLSERVER平台:

OS: WINDOWS2003(192.168.0.176)

DA TABASE :SQLSERVER2005 (db:barcodenew)

备注:oracle db与gateway共用一台机

1、download linux_11gR2_database_1of2.zip, linux_11gR2_database_2of2.zip,

linux_11gR2_gateways.zip

2、Oracle 11gr2 安装硬件要求:

Hardware:

===========

1. Minimum Hardware Requirements

a.) At least 1.0 Gb (1024 MB) of physical RAM

b.) Swap disk space proportional to the system's physical memory as follows:

RAM Swap Space

1024 Mb to 2048 Mb 1.5 x RAM

2049 Mb to 16 Gb 1 x RAM

greater than 16 Gb 16 Gb

c.) 1024 Mb of disk space (and less than 2Tb of disk space) in the /tmp

directory.

d.) approximately 4 Gb of local disk space for the database softwar

e.

e.) approximately 1.7 Gb of disk space for a preconfigured database that uses

file system storage (optiona

3、软件安装要求:

3. Required OS Components (per Release Notes, and Install Guide)

a.) The exact version number details of this list are based upon 32-bit (x86) RHEL Server

5.2. When a higher "update" level is used, the RPM release numbers (such as 4.1.2-42) may be slightly higher (such as 4.1.2-57 or 4.1.3-10). Since "update 2" and greater of RHEL 5 are certified, this is fine so long as you are still using 32-bit Linux (x86) RHEL Server 5 RPMs.

b.) Some of the Install Guide requirements will already be present from the "default-RPMs" foundation of Linux that you started with:

1.) binutils-

2.17.50.0.6-2.el5

2.) compat-libstdc++-33-

3.2.3-61

3.) elfutils-libelf-0.125-3.el5

4.) glibc-2.5-24

5.) glibc-common-2.5-12

6.) ksh-20060214-1.7

7.) libaio-0.3.106

8.) libgcc-4.1.2-42.el5

9.) libstdc++-4.1.2-42

10.) make-3.81-1.1

c.) The remaining Install Guide requirements will have to be installed:

1.) elfutils-libelf-devel-0.125-3.el5.i386.rpm

a.) requires elfutils-libelf-devel-static-0.125-3.el5.i386.rpm as a prerequisite.

b.) elfutils-libelf-devel and elfutils-libelf-devel-static each depend upon the other. Therefore, they must be installed together, in one (1) "rpm -ivh" command as follows:

rpm -ivh elfutils-libelf-devel-0.125-3.el5.i386.rpm elfutils-libelf-devel-static-0.125-3.el5.i386.rpm

2.) kernel-headers-2.6.18-92.el5.i386.rpm

3.) glibc-headers-2.5-2

4.i386.rpm

4.) glibc-devel-2.5-24.i386.rpm

5.) libstdc++-devel-4.1.2-42.el5.i38

6.rpm

6.) libgomp-4.1.2-42.el5.i386.rpm

7.) gcc-4.1.2-42.el5.i386.rpm

8.) gcc-c++-4.1.2-42.el5.i386.rpm

9.) libaio-devel-0.3.106-3.2.i386.rpm

10.) sysstat-7.0.2-1.el5.i386.rpm

11.) unixODBC-2.2.11-7.1.i386.rpm

12.) unixODBC-devel-2.2.11-7.1.i386.rpm

4、vi /etc/sysctl.conf

add this line to sysctl.conf

kernel.shmall = 268435456

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.file-max = 6815744

fs.aio-max-nr = 1048576

sysctl –p

5、

1

. Set Shell Limits for the oracle User. Assuming that the "oracle" Unix user will perform the

installation, do the following:

a.) Add the following settings to /etc/security/limits.conf

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

b.) Add or edit the following line in the /etc/pam.d/login file, if it does not already exist:

session required pam_limits.so

c.) Add the following lines to /etc/profile:

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -u 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

5、vi /etc/hosts

127.0.0.1 localhost.localdomain localhost

192.168.0.176 barcode_app.sz.hyt

192.168.0.197 https://www.doczj.com/doc/0b13165984.html, oracle

6、su – oracle

vi .bash_profile

PATH=$PATH:$HOME/bin

export PATH

ORACLE_HOME=/oracle/oracle/product/11.2.0/dbhome_1;export ORACLE_HOME

PATH=$PATH:$HOME/bin

PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/dg4msql/lib; export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

export ORACLE_SID=fsms

7、设定gateway for sqlserver

1、在/oracle/oracle/product/11.2.0/dbhome_1/dg4msql/admin目录下:

Vi initbarcodenew.ora

HS_FDS_CONNECT_INFO=192.168.0.176:1433//barcodenew

# alternate connect format is hostname/serverinstance/databasename

HS_FDS_TRACE_LEVEL=DEBUG

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

HS_FDS_WORKAROUNDS=16

HS_FDS_DELAYED_OPEN=FALSE

2、在/oracle/oracle/product/11.2.0/dbhome_1/dg4msql/admin目录下:

Vi listener.ora

LISTENER =

(ADDRESS_LIST=

(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.197)(PORT=1523)) )

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=barcodenew)

(ORACLE_HOME=/oracle/oracle/product/11.2.0/dbhome_1)

(ENV='LD_LIBRARY_PATH=/oracle/oracle/product/11.2.0/dbhome_1/dg4msql/driver/lib:/ oracle/oracle/product/11.2.0/dbhome_1/lib')

(PROGRAM=dg4msql)

)

)

3、在/oracle/oracle/product/11.2.0/dbhome_1/network/admin目录下:

Vi listener.ora

(SID_LIST =

( (SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/oracle/product/11.2.0/dbhome_1)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = fsms)

(ORACLE_HOME = /oracle/oracle/product/11.2.0/dbhome_1)

(GLOBAL_DBNAME = fsms)

)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = https://www.doczj.com/doc/0b13165984.html,)(PORT = 1521)) )

)

ADR_BASE_LISTENER = /oracle/oracle

4、在/oracle/oracle/product/11.2.0/dbhome_1/network/admin目录下:

Vi tnsnames.ora

FSMS =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.197)(PORT = 1521)) )

(CONNECT_DATA =

(SERVICE_NAME = https://www.doczj.com/doc/0b13165984.html,)

)

)

barcodenew =

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.197)(PORT=1523))

(CONNECT_DATA=(SID=barcodenew))

(HS=OK)

)

~

5、lsnrctl start

5、 sqlplus / as sysdba

create database link barcode connect to sa identified by “123456” using …barcodenew?select "serialno" from pack_maintain@barcode where "serialno" ='000087060001280';

serialno

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

000087060001280

ORACLE数据库与实例的关系

ORACLE数据库与实例的关系 1 数据库名 1.1 数据库名的概念 数据库名(db_name)就是一个数据库的标识,就像人的身份证号一样。如果一台机 器上装了多个数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。 数据库名在$Oracle_HOME/admin/db_name/pfile/init.ora(或 $ORACLE_BASE/admin/db_name/pfile/init.ora或$ORACLE_HOME/dbs/SPFILE<实 例名>.ORA)文件中 ########################################### # Database Identification ########################################### db_domain="" db_name=orcl 在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是 以二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。 1.2 数据库名的作用 数据库名是在安装数据库、创建新的数据库、创建数据库控制文件、修改数据结构、备份与恢复数据库时都需要使用到的(注意这些时候不能使用sid,还有alter database时都是使用数据库名)。 有很多Oracle安装文件目录是与数据库名相关的,如: winnt: F:\oracle\product\10.2.0\oradata\DB_NAME\...

ORACLE SQLPLUS 常用命令及解释

Oracle SQLPlus常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

oracle绑定变量及举例

1.什么是绑定变量,及举例 什么是绑定变量,问什么要进行绑定变量? Sql语句的执行要经过解析、执行、提取等几个阶段,其中解析最消耗资源,解析的过程中要进行语法、语义和权限的检查,如果这些检查都通过了,则进行执行,执行完成之后将sql语句的执行计划存储在共享池中,如果下一次有相同的sql语句要执行,则不需要解析,直接按照已经存在的执行计划进行执行,就可以节省资源 当多个sql语句执行的时候大多数情况下是条件相同,只是条件里面的值不同。 例如:A 用户:select * from t where ID=1 B 用户:select * from t where ID=2 绑定变量就是将条件谓词中不同的值保存在一个中间变量中,Oracle对用户每次发起的sql语句做hash运算时,都产生相同的hash 值, 使用相同的执行计划,作为一个sql语句来执行。 Select * from t where ID=:X 下面是绑定变量和非绑定变量的性能比较 1)绑定变量执行 alter session set sql_trace=true; begin for x in 1..10000 loop execute immediate 'select * from t where object_name=:x' using x; end loop; end; alter session set sql_trace=false;

trace文件中的执行计划和统计信息 SQL ID: gdp68zfsdqrbc Plan Hash: 1601196873 select * from t where object_name=:x call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 0 0 0 Execute 10000 0.15 0.17 0 0 0 0 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 10001 0.15 0.17 0 0 0 0 Misses in library cache during parse: 0 Optimizer mode: ALL_ROWS Parsing user id: 5 (SYSTEM) (recursive depth: 1) Rows Row Source Operation ------- --------------------------------------------------- 0 TABLE ACCESS FULL T (cr=0 pr=0 pw=0 time=0 us cost=301 size=196 card=2)

windows环境下配置连接oracle数据库的方法及步骤

配置oracle连接 怎么在windows环境下配置连接oracle数据库? 步骤如下: 一、安装PL/SQL: 1、获取PL/SQL安装包;(PL/SQL是连接oracle的客户端) 2、安装PL/SQL; (1)双击PL/SQL安装程序,安装PL/SQL; (2)选择“I Agree”进行安装;

(3)选择安装路径(一般选择默认路径);点击【Next】按钮; (4)默认选择,点击【Next】按钮; (5)默认选择,点击【Finish】按钮,开始安装;

(6)安装进度显示 (7)窗口提示“PL/SQL Developer installed successfully”,安装完成,点击【Close】按钮。

二、配置连接 1、获取oci.dll文件(该文件是用来连接数据库的文件),将该文件及其所在的文件夹放置在一个不含有中文的路径下(如:F:\instantclient); 2、双击打开PL/SQL客户端,点击【Cancel】按钮; 3、跳转到PL/SQL页面,如下图所示。选择【Tool】—>Preferences; 4、按下图进行选择,在“Oracle Home(enpty is autodetect)”栏中选择oci.dll文件所在的目录;在“OCI library(enpty is autodetect)”栏中选择oci.dll文件

5、点击【OK】按钮即可完成 6、退出PL/SQL页面,重新登录。双击PL/SQL客户端,在Oracle Logon窗口中填写数据库的用户名、密码、数据库名和连接方式;点击【OK】按钮即可查询数据库。 完毕!谢谢!

Oracle数据库编程(笔试)

Oracle数据库编程 测试题(笔试)成都朗沃信息技术有限公司

本试题为闭卷笔试考试时间:120分钟答题说明:不定项选择题有一个、两个或两个以上正确选项,漏选、多选、错选均不得分 一、不定项选择题(共40题,每小题2.5分,总分100分) 1.数据库发展方向有:()。 A. SQL开发人员 B.数据库管理员 C. 网络工程师 D. 售前工程师 2.组成PL/SQL程序的最基本的单元是()。 A. 存储过程 B.函数 C. 触发器 D. 匿名块 3.下面哪些是单词是Oracle的关键字()。 A. V ar B. Declare C. End D. User 4.下面关于PL/SQL说法正确的是()。 A. PL/SQL必须编译才能执行 B. SQL不需要编译就能执行 C. 相同的SQL语句只会编译一次 D. PL/SQL中的SQL部分是交给SQL引擎处理的 5.关于Oracle体系架构说法正确的是()。 A. Oracle分为实例和进程两部分。 B. Oracle分为实例和数据库两部分。 C. SGA大小会直接影响到SQL执行的速度。 D. PGA大小会直接影响到SQL执行的速度。 E.以上答案都不正确。 6.下面哪些缓冲区是与性能直接相关的()。 A. 日志缓冲区 B.程序全局区 C. 数据缓冲区 D. SQL共享池 7.实例与数据库的区别是()。 A. 实例就是管理数据库的各种进程。 B.一个实例只能管理一个数据库。 C. 一个数据库可能由多个实例同时管理。 D. 一个数据库只有一个实例管理,叫单实例数据库。一个数据库同时由多个实例管理,叫 多实例数据库。 8.Oracle没有下面哪种数据库类型()。 A. Date B. Smalldatetime C. Boolean D. V archar 9.关于视图,说法正确的有() A. 视图本质就是查询 B.可以通过视图增删改查数据 2

oracleDBA笔试经典试题

普通类 一、选择题(单选题) 1、在下列哪一种情况下用户不能被删除( )。 A. 不拥有任何模式对象的用户 B. 当前正处于连接状态的用户 C. 拥有只读表的用户 D. 所有的用户都可以任何时刻删除 2、分析以下的SQL 命令: SELECT manufacturer_id FROM inventory WHERE manufacturer_id LIKE '%N\%P\%O%' ESCAPE '\'; 命令执行的返回结果是() A、所有包含'NPO'的纪录 B 、所有包含'N\P\O'的纪录 C 、所有包含'N%P%O'的纪录 D 、所有包含'%N\P\O%'的纪录 3、游标的哪一种属性指示fetch语句是否从活动集中返回行,如未能返回行,则此属性的值为true ? A、%FOUND B、%NOTFOUND C、%ROWCOUNT D、%ISOPEN 4、下列哪个集合操作符返回两个查询所选择的所有不同的行。 A、Union B、Union all C、Union only D、Intersect 5、如何删除sales表中产品类型为toys的profits列的列值? A、UPDATE sales SET profits = NULL WHERE product_type = 'TOYS' B、DELETE profits FROM sales WHERE product_type = 'TOYS' C、DELETE FROM sales WHERE product_type = 'TOYS' D、DELETE FROM sales 6、参数maxtrans指定每个( D )上允许的最大并发的事务数。 A、table B、segment C、extent D. block

配置Oracle数据库连接串

配置Oracle数据库连接串 1、点击:开始—>程序—>Oracle - OraHome81—>Network Administration—>Net8 Configuration Assistant 启动 Net8 Configuration Assistant如下图: (图ORCL_01) 2、选择本地网络服务名配置,点击下一步。 (图ORCL_02) 3、选择添加,点击下一步

(图ORCL_03) 4、选择Oracle8i数据库或服务,点击下一步 (图ORCL_04) 5、在上图中输入全局数据库名,(勿必与安装ORACLE服务器时输入的全局数据库名一致。如:ORCL)点击下一步。 (图ORCL_05)

6、选择TCP协议,点击下一步。 (图ORCL_06) 7、填入实际数据库服务器的主机名(请使用IP地址),如主机名为:192.168.0.1, 选择请使用标准端口号1521, 点击下一步。 (图ORCL_07) 8、选择:是,进行测试,点击下一步。

(图ORCL_08) 9、在上图中如果提示测试不成功,请点击后退按钮,检查在图ORCL_04中输入的全书数据库名是否正确,检查图ORCL_05中选择的是否是TCP协议,检查图ORCL_06中输入的主机名(IP地址)是否正确。 如果上图中提示测试成功,则点击下一步。(请确保测试成功) (图ORCL_09) 10、在上图中输入网络服务名为:Ecom1.3 (请确保输入为Ecom1.3) 点击下一步。

(图ORCL_10)11、在上图中选择否,点击下一步。 (图ORCL_11)12、点击下一步。

Oracle数据库的绑定变量特性及应用

Oracle 数据库的绑定变量特性及应用 在开发一个数据库系统前,有谁对Oracle 系统了解很多,尤其是它的 特性,好象很少吧;对初学者来讲,这更是不可能的事情;仅仅简单掌握了SQL的写法,就开始了数据库的开发,其结果只能是开发一个没有效率,也没有可扩展的系统; 因此,我写这个主题也是希望让大家更多地掌握Oracle数据库的特性,从而在架构一个新系统时,能考虑系统的可扩展,可伸缩性,也兼顾系统的效率和稳定; 使用绑定变量是Oracle数据库的特性之一;于是大家要问,为什么使用,怎样使用,它的使用限制条件是什么?我会按照这样的想法去解答大家的疑问,我也会以举例子的方式来回答这些问题; 1.为什么使用绑定变量? 这是解决Oracle应用程序可伸缩性的一个关键环节;而Oracle的共享池就决定了开发人员必须使用绑定变量;如果想要Oracle 运行减慢,甚至完全终止,那就可以不用绑定变量; 这里举例说明上述问题; 为了查询一个员工代号是123,你可以这样查询: select * from emp where empno=’123’; 你也可以这样查询: select * from emp where empno=:empno; 象我们往常一样,你查询员工’123’一次以后,有可能再也不用;接着你有可能查询员工’456’,然后查询’789’等等;如果查询使用象第一个查询语句,你每次查询都是一个新的查询(我们叫它硬编码的查询方法);因此,Oracle每次必须分析,解析,安全检查, 优化等等; 第二个查询语句提供了绑定变量:empno,它的值在查询执行时提供,查询经过一次编译后,查询方案存储在共享池中,可以用来检索和重用;在性能和伸缩性方面,这两者的差异是巨大的,甚至是惊人的;通俗点讲,就不是一个级别; 第一个查询使用的频率越高,所消耗的系统硬件资源越大,从而降低了用户的使用数量;它也会把优化好的其它查询语句从共享池中踢出;就象一个老鼠坏了一锅汤似的,系统的整体性能降低; 而执行绑定变量,提交相同对象的完全相同的查询的用户(这句话,大家听起来比较难理解,随后我会给出详细的解释),一次性使用就可重复使用,其效率不言耳语; 打个形象的比喻来说,第一个查询就象一次性使用的筷子,而第二个查询象是铁筷子,只要洗干净,张三李四都能用,合理有效地使用了资源; 下面举例子去详细论证上述的问题,不使用绑定变量为生病状况: 这是一个未使用的绑定变量(吃药前): set echo on;(把执行结果显示出来) alter system flush shared_pool;

Oracle数据库远程连接设置的四种方法

Oracle数据库远程连接设置的四种方法 Oracle数据库的远程连接可以通过多种方式来实现,本文我们主要介绍四种远程连接的方法和注意事项,并通过示例来说明,接下来我们就开始介绍。 第一种情况: 若oracle服务器装在本机上,那就不多说了,连接只是用户名和密码的问题了。不过要注意环境变 量%ORACLE_HOME%/network/admin/是否设置。 第二种情况: 本机未安装oracle服务器,也未安装oracle客户端。但是安装了pl sql development、toad sql development、sql navigator等管理数据库的工具。在虚拟机或者另一台电脑上安装了oracle服务器,也就是虚拟机或者另一台电脑此时作为服务器。 这种情况下,本人以pl sql development远程连接ORACLE服务端数据库为例: 1、在安装oracle服务器的机器上搜索下列文件: ?oci.dll ?ocijdbc10.dll ?ociw32.dll ?orannzsbb10.dll ?oraocci10.dll ?oraociei10.dll ?sqlnet.ora ?tnsnames.ora ?classes12.jar ?ojdbc14.jar 把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:oraclient。 2、配置tnsnames.ora,修改其中的数据库连接串。 1.oracledata = 2. 3.(DESCRIPTION = 4. 5.(ADDRESS_LIST = 6. 7.(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521)) 8. 9.(CONNECT_DATA =

oracle大型数据库简答题题库

共享和专用操作模式的工作过程有什么区别? 在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,其用户进程数与服务器进程数的比例为1:1因为在用户进程空闲期间,对应的服务器进程始终存在,数据库的效率比较低。共享服务器操作模式可以实现只运行少量的服务器进程,由少量的服务器进程为大量用户提供服务。在此模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程Dnnn 的调度下位任意数量的用户进程提供服务。 简述oracle的初始化参数文件? 答:在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。 简述如何修改初始化参数文件? 答:如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。 简述启动数据库时的状态。 答:开启数据库分成4种状态。SHUTDOWN状态:数据库是关闭的。NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。MOUNT状态:会去读取控制文件。数据库被装载。OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。 简述数据库的各种关闭方式。 答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。(2)事务关闭(SHUTDOWN TRANSACTIONAL):等待所有未提交的事务完成后再关闭数据库(3)立即关闭(SHUTDOWN IMMEDIATE):任何未提交的事务均被回退。(4)终止关闭(SHUTDOWN ABORT):立即终止当前正在执行的SQL语句,任何未提交的事务 页脚内容1

oracledatabase11g,plsql编程实战笔记

Chap1 DML语句是select 、insert、update、delete和merge DDL语句是create、alter、drop、rename、truncate、comment DCL语句是grant、revoke TCL语句是commit、rollback和savepoint sql16个基本命令——参考书《OCA认证考试指南(IZ0-)》清华大学 《oracle database sql language reference 11g》有非遵循格式字符串依赖于格式掩码 chap2 2.1.3 关于语句中有多个单引号时处理: 1、 select'It''s a bird,no plan can''t be 'as pharse from dual; 此处两个单引号即为一个单引号 2、只能用q 再加’(语句)’ select q'(It's a bird,no plan can't be)'as pharse from dual; 均输出 PHARSE ---------------------------- It's a bird,no plan can't be 2.1.4 定义变量与申明变量的区别: 定义变量即为变量分配名称并指定数据类型;申明变量首先需要定义变量,然后为其赋值。(赋值也称为初始化) 替代变量前面要加&前缀且若替代变量为字符型时要加两个单引号如’&a’ declare lv_whom varchar2(20);/*lv-whom为申明变量,a为替代变量,a没有变量类型*/ begin lv_whom := '&a'; end; 或者 declare lv_whom varchar2(20); begin lv_whom := &a; end;但是要在输入框中字符加两个单引号 替代变量用define申明,且定义时不可以指定类型,默认为char型 ①Define x=emp; Select * from &x; /*调用要用&,此处不加单引号,解析后即为emp表*/

Java连接oracle数据库方法

Java连接oracle数据库 一、普通的连接数据库 1、注册驱动 Class.forName(“oracle.jdbc.driver.OracleDriver”); 2、获取连接 Connection conn=null; conn= DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:XE”,user,pa ssword); 3、建立statement Statement stat=conn.createStatement(); 4、执行SQL语句 stat.execute(“SQL语句”); 5、处理结果集 ResultSet rs=null; rs=stat.executeQuery(“SQL语句”); While(rs.next()){ System.out.println(“id:”+rs.getInt(“id”)+”last_name”+getString(“l ast_name”)); } 6、关闭连接 Rs.close(); Stat.close(); Conn.close();

二、加载properties文件连接数据库并使用PreparedStatement --------------------首先准备xxx.properties文件---------------------user=xxxxx password=xxxxxx driver=oracle.jdbc.driver.DriverOracle url=jdbc:oracle:thin:@127.0.0.1:1521:XE -------------------------------------------------------------------------------- 1、创建properties实例对象 Properties prop=new Properties(); 2、加载xxx.properties文件 prop.load(new FileInputStream(“xxx.properties文件路径”)); 3、获取xxx.properties文件中的属性 Class.forName(prop.getString(“driver”)); conn=DriverManager.getConnetion(prop.getString(“url”,prop)); 4、创建PreparedStatement实例对象并执行语句 String sql=“select*from table_name where id=?And last_name=?”; PreparedStatement ps=conn.preparedStatement(sql); ps.setInt(1,4); ps.setString(2,”nihao”);

Oracle数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 1.默认情况OEM的URL地址是https://sd04:1158/em(其中sd04为机器名) 2.Oracle9i发布于2001,i代表Internet,11G发布于2007,g代表grid(网格) 3.在oracle内存结构中,保存正在执行或可能执行的代码的区是代码区 4.在oracle进程结构中,用于实现进程监控功能的进程是PMON 1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2.一个表空间物理上对应一个或多数据文件 3.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分成为数据段、索引段、回滚段、LOB段和临时段。 1.在设计表时,对于邮政编码最适合的数据类型是CHAR 2.在alter table语句中,如果要删除列,可以通过指定DROP COLUMN关键字来实现。 3.如果需要在表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个update语句来修改goods表中的数据,并且把每一行的t-id值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=’15’ 5.使用DESC命令可以显示表的结构信息 6.两个表的主关键字和外关键字的数据应该对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7.UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 1.在select语句中选择满足条件的记录使用where关键字,分组之后进行选择使用having 关键字 2.用来返回特定字段中所有值得总和的聚合函数是SUM 3.编写查询语句时,使用%通配符可以匹配多个字符。 18.集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算 19.如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字 20.删除视图的PL\SQL语句是DROP VIEW [用户方案.]视图名 21.在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引 22.聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键 23.在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID 24.如果表中某列的基数比较低,则应该在该列上创建反向索引 25.如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 26. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE 类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE 类型的变量用来一次存储从数据表中检索的一行数据。 27. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 28. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。

Oracle数据库基础题库【含答案】

1、判断题,正确请写写"T",错误请写写"F", 1、oracle数据库系统中,启动数据库的第一步是启动一个数据库实 例。( T )2、Oracle服务器端的监听程序是驻留在服务器上的单独 进程,专门负责响应客户机的连接请求。( F) 3、oracle数据库中实例和数据库是一一对应的(非ORACLE并行服务, 非集群)。( T) 4、系统全局区SGA 是针对某一服务器进程而保留的内存区域,它是不 可以共享的。( F ) 5、数据库字典视图ALL_***视图只包含当前用户拥有的数据库对象信 息。( F ) 8、数据字典中的内容都被保存在SYSTEM表空间中。( T ) 9、HAVING后面的条件中可以有聚集函数,比如SUM(),AVG()等, WHERE 后面的条件中也可以有聚集函数。( F ) 10、"上海西北京" 可以通过like ‘%上海_’查出来。( F ) 11、表空间是oracle 最大的逻辑组成部分。Oracle数据库由一个或多 个表空间组成。一个表空间由一个或多个数据文件组成,但一个数据文 件只能属于一个表空间。( T ) 12、表空间分为永久表空间和临时表空间两种类型。( T ) 13、truncate是DDL操作,不能 rollback。( T ) 14、如果需要向表中插入一批已经存在的数据,可以在INSERT语句中使 用WHERE语句。( F ) 15、Oracle数据库中字符串和日期必须使用双引号标识。( F ) 16、Oracle数据库中字符串数据是区分大小写的。( T ) 17、Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特 殊操作时候保证操作能正常进行。( F ) 18、为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字 段列表的末尾。( T )  20、在连接操作中,如果左表和右表中不满足连接条件的数据都出现在 结果中,那么这种连接是全外连接。( T ) 21、自然连接是根据两个表中同名的列而进行连接的,当列不同名时, 自然连接将失去意义。( T ) 23、PL/SQL代码块声明区可有可无。( T ) 24、隐式游标与显式游标的不同在于显式游标仅仅访问一行,隐式的可 以访问多行。( F )

PLSQL在from后面使用变量,以及输入'&字符'的方法

PL/SQL在from后面使用变量,以及输入'&字符'的方法 在from后面使用变量 CREATE OR REPLACE FUNCTION GET_TABLE_COUNT( I_TabNa IN VARCHAR2 , I_Owner IN VARCHAR2 DEFAULT NULL ) RETURN NUMBER IS V_RtnVal NUMBER ; V_CursorId INTEGER ; V_SqlStr VARCHAR2(300) ; BEGIN V_CursorId := DBMS_SQL.OPEN_CURSOR ; IF LENGTHB( RTRIM( LTRIM( NVL( I_Owner , '' ) ) ) ) = 0 THEN V_SqlStr := 'SELECT COUNT(*) FROM ' || I_TabNa ; ELSE V_SqlStr := 'SELECT COUNT(*) FROM ' || I_Owner|| '.' || I_TabNa ; END IF ; DBMS_SQL.PARSE( V_CursorId , V_SqlStr , DBMS_SQL.V7 ) ; DBMS_SQL.DEFINE_COLUMN( V_CursorId , 1 , 0 ) ; IF DBMS_SQL.EXECUTE( V_CursorId ) = 0 THEN NULL ; END IF ; IF DBMS_SQL.FETCH_ROWS( V_CursorId ) = 0 THEN RETURN 0 ; END IF ; DBMS_SQL.COLUMN_VALUE( V_CursorId , 1 , V_RtnVal ) ; DBMS_SQL.CLOSE_CURSOR( V_CursorId ) ; RETURN V_RtnVal ; EXCEPTION WHEN OTHERS THEN DBMS_SQL.CLOSE_CURSOR( V_CursorId ) ; -- DBMS_OUTPUT.PUT_LINE( V_SqlStr || SQLERRM ) ; RETURN 0 ; END GET_TABLE_COUNT; 试验结果: SQL> select GET_TABLE_COUNT( 'tab' ) from dual ;

在ArcGIS中如何使用Oracle直连方式连接oracle数据库

在ArcGIS中如何使用直连方式连接Oracle数据库 1.背景 直连方式比使用SDE方式更加稳定,特别是在大数据量处理的应用中,不易出场由SDE连接进程造成的gsvr错误。同时直连方式由于采用Orale客户端连接数据库,在数据库双机部署或集群部署时可以直接利用数据库的负载机制,如RAC,勿需额外的负载均衡服务器。 2.方法 在ArcGIS中使用直连,最简单和常用的工具莫过于ArcCatalog。 打开ArcCatalog,找到Database connections,选择添加空间数据库连接项: 双击后如下,填写连接参数。

使用SDE连接与直连的参数对比如下: 表中IP当采用SDE连接方式为SDE服务所在的IP。 3.遇到问题 在本机测试的过程中遇到一个离奇的问题,即直连本机好用,直连远程服务器不好使了。 采用直连方式可以连通本机39上的oracle服务器,其它连接参数不变把IP 修改为192.168.0.81后,连上的仍然是本机(39)的数据库。 考虑到81上的数据库为11g ,将service参数修改为sde:oracle11g直连81的Oracle,此时居然报错,连接服务器失败。 这个问题一直搹浅了很久,也没有找到原因。后来请教了专业人员,才知道还是对ArcGIS直连Oracle的原理不清楚。 4.分析直连原理 ArcGIS直连Oracle的原理见下图。首先ArcGIS直连Oracle是通过在ArcGIS 所在客户端上安装一个oracle client实现的。oracle client去连接oracle database,而不是采用SDE方式中的SDE服务去连接。 其次,ArcGIS客户端如ArcCatalog将连接请求发给oracle client时必须有一个与所请求的服务器对应的监听服务(Net lisenter)。监听服务可以使用oracle client的Net Manager管理工具配置。配置后的监听服务信息记录在一个Tnsnames.ora文件中,用过Oracle客户端的人对这个文件应该都不陌生,这个文件存储在“安装目录\db_1\NETWORK\ADMIN”下,因此高手也可以不用Net Manager管理工具配置,直接修改这个文件即可。

Oracle中SQL语句的几种用法

在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出跟踪数据,并将它们保存到一个文件中。该实用程序在共享服务器配置中特别有用,因为调度程序可能把每一个用户请求传递给不同的共享服务器进程,从而为任何给定的会话产生多个跟踪文件。与通过大量跟踪文件发掘信息不同,Oracle数据库10g的trcsess可以让您获得关于单一用户会话的整合后的跟踪信息。现在就如何跟踪SQL 语句来做一个简单的总结。权做抛砖引玉之用。 如果我们可以修改应用系统的源代码,则可以直接在程序中加入如下的语句: 1)alter session set timed_statistics=true; /*适用于Oracle 8.1.7以后的版本*/ 2)alter session set max_dump_file_size=unlimited ; /*适用于Oracle 9i以后的版*/ 3)alter session set tracefile_identifier='POX20031031a'; /*适用于Oracle 9i以后的版本*/ 4)alter session set events '10046 trace name context forever, level 8'; /*在这里编写应用程序的代码*/ 5)alter session set events '10046 trace name context off'; 在上述语句中,语句1是把该会话的时间统计打开,该参数默认为false.在Oracle 9i之前的版本中,不能在会话级设置该参数,只能修改初始化文件然后重新启动数据库,这样将在实例级打开时间统计。 语句2是把跟踪文件的大小设置成操作系统所允许的最大尺寸,这样可以防止跟踪文件在完成所需要的跟踪之前被填充满,此外需要注意的是确保存放跟踪文件的目录要有足够的空间,否则将会收到“文件系统已满”错误。 语句3的作用是使生成的跟踪文件名称中包含'POX20031031a'字符串,这样可以使你很容易的找到所需的跟踪文件,该参数在Oracle 9i之后可用。 语句4和语句5的作用分别是打开和关闭跟SQL跟踪,你可以在这两个语句之间写入应用程序的代码,这些代码的执行情况都将被跟踪。需要注意的是语句4)的level关键字,它用来指定跟踪级别,一共有0,1,2,4,8,12六个级别可以设置,0相当于关闭跟踪;1是输出一般的跟踪信息,不包括绑定变量和等待信息;2和1相同;4是在级别1的基础上增加绑定变量信息;8是在级别1的基础上增加等待信息;级别12是输出包含级别1,4,8的所有信息。 如果应用程序的代码无法修改或者是不想去修改,则可以在其他会话中打开对特定会话的跟踪,方法如下: sys.dbms_system.set_bool_param_in_session(:sid,:serial,'timed_statistics', true); sys.dbms_system.set_int_param_in_session( :sid,:serial,'max_dump_file_size', 2147483647); 打开和关闭跟踪的第一种方法(oracle推荐):

PB如何连接ORACLE数据库

PB如何连接ORACLE数据库如果你已经是个PowerBuilder高手,那么下面的东西对你来说毫无价值,你大可不必再看下去,如果你刚刚步入PowerBuilder的殿堂,那么下面的东西对你来说可能有点价值,你应该看一看。 作为一个优秀的客户端开发工具,PowerBuilder必然需要与大型的数据库相连接,尽管许多资料上都介绍了如何通过ODBC或者PowerBuilder自带的DB Profile或者专用接口连接上数据库,但仍然有许多使用者按此方法却无法连接上数据库,这方面的原因可能是P owerBuilder本身的原因,比如在安装PowerBuilder时的选项、ODBC的版本之类;也可能是在安装客户端的Oracle、Sybase、Informix、SQL Server等软件上的问题,下面就从最根本的ODBC配置开始,教你一步步如何连接上数据库。 ODBC数据源的配置 进入控制面板,打开ODBC数据源(32位),如图1所示,点击“ADD”按钮,进入OD BC数据源的配置面板,如图2所示:

选择“Oracle ODBC Driver”一项,注意当前版本号为“8.00.0400”,如果你的操作系统中安装的是Oracle7,则相应的版本号会不同。提醒一点:在Windows98操作系统上是无法安装Oracle8.0.4的(只能安装Oracle7.2.3),Oracle8.0.5则没有试过。因而会有一些使用者在Windows98系统上无法正常配置ODBC数据源,因为Windows98本身自带的OD BC数据源已经比Oracle7数据源版本要高,无论你怎样配置ODBC,系统总会提示你要安装一个更高版本的Oracle,自然你就无法配置ODBC了,有一个解决方法就是用PB7第二张光盘上的ODBC安装程序覆盖系统中的ODBC,或者把你的操作系统改为Windows95/97算了。 然后进入“Oracle8 ODBC Driver Setup”设置,在“Data Source Name”一项中随便输入一个名字,在“Data Source Service Name”一栏中输入Oracle连接数据库的字符串名,这可以在你安装的Oracle目录中的Tnsnames.ora文件中查看到(Oracle7安装路径为“ORAWIN95\NETWORK\ ADMIN”;Oracle8安装路径为“ora win95\NET80\ADMIN”),或者你通过“SQL Net Easy Configuration”新添加一个数据库连接配置,将配置中的字符串填入即可,其他的就不必再填入,避免出现画蛇添足之错,反而连接不上数据库了。

Oracle数据库链接建立技巧与实例讲解

Oracle数据库链接建立技巧与实例讲解 数据库链接(DATABASE LINK)是在分布式环境下,为了访问远程数据库而创建的数据通信链路。数据库链接隐藏了对远程数据库访问的复杂性。通常,我们把正在登录的数据库称为本地数据库,另外的一个数据库称为远程数据库。有了数据库链接,可以直接通过数据库链接来访问远程数据库的表。常见的形式是访问远程数据库固定用户的链接,即链接到指定的用户,创建这种形式的数据库链接的语句如下: CREATE DATABASE LINK 链接名 CONNECT TO 账户 IDENTIFIED BY 口令 USING 服务名; 创建数据库链接,需要CREATE DATABASE LINK系统权限。 数据库链接一旦建立并测试成功,就可以使用以下形式来访问远程用户的表。 表名@数据库链接名 例:在局域网上创建和使用数据库链接。 步骤1:创建远程数据库的服务名,假定局域网上另一个数据库服务名为MYDB_REMOTE。 步骤2:登录本地数据库SCOTT账户,创建数据库链接: CONNECT SCOTT/TIGER@MYDB CREATE DATABASE LINK abc CONNECT TO scott IDENTIFIED BY tiger USING 'MYDB_REMOTE'; 执行结果为: 数据库链接已创建。 查询远程数据库的数据: SELECT * FROM emp@abc; 结果略。 步骤4:一个分布查询: SELECT ename,dname FROM emp@abc e,dept d WHERE e.deptno=d.deptno; 结果略。

相关主题
相关文档 最新文档