搜档网
当前位置:搜档网 › oracle中dblink创建和删除

oracle中dblink创建和删除

oracle中dblink创建和删除
oracle中dblink创建和删除

oracle中如何创建dblink

当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。下面讲介绍如何在本地数据库中创建dblink.

创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:

select * from user_sys_privs t

where t.privilege like upper('%link%');

1 SYS CREATE DATABASE LINK NO

2 SYS DROP PUBLIC DATABASE LINK NO

3 SYS CREATE PUBLIC DATABASE LINK NO

可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK (public表示所创建的dblink所有用户都可以使用),DROP PUBLIC DATABASE LINK。

在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;

然后以scott用户登录本地数据库

1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。

create public database link

to_bylw connect to scott identified by tiger using 'bylw';

其中to_bylw是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示

select * from scott.tb_test@to_bylw;

2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,

create database link to_test

connect to scott identified by tiger

using '(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = bylw)

)

)';

第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:

bylw =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = bylw)

)

)

db link的查看创建与删除

1.查看dblink

select owner,object_name from dba_objects where

object_type='DATABASE LINK';

或者

select * from dba_db_links;

2.创建dblink

前提:

创建dblink的用户有对应的数据库权限

create public database link 或者create database link 可以使用

grant create public database link,create database link to myAccount;

来授权.

create public database link dblinkname connect to username identified by password

using '(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SERVICE_NAME =servicename)

)

)';

如果在create之后不加public,则创建的dblink就不是公共的,就只有创建者可以使用了.

补充:如何确定数据库的servicename:

1.在sqlplus中使用

show parameter[s] service_names;

注意parameter和parameters都可以

2.使用

select name,value from v$parameter where

name='service_names'

3.使用db link

例如,在本机数据库上创建了一个scott_rmthost的public dblink(使用远程主机的scott用户连接),则用sqlplus连接到本机数据库,执行select * from scott.emp@scott_rmthot即可以将远程数据库上的scott用户下的emp表中的数据获取到.

也可以在本地建一个同义词来指向scott.emp@scott_rmthost,这样取值就方便多了.

4.删除

注意:用户有create public database link 或者create database link 权限.

设备、仪器及工装夹具点检检查及维护管理制度

设备、仪器及工装夹具 的点检、检查及维护管理制度 编号:HTD-SJ-ZD-15 1.总则 1.1制订设备、仪器及工装夹具点检制度的目的 为进一步加强设备的科学管理,及时发现设备故障隐患,充分发挥设备原有的机械性能、动力性能,提高设备有效利用率,准确掌握设备的技术状态,使之得到合理的运用,特制定该制度。妥善的对设备点检、检查、保养,并进行严格的管理和监督,可以充分满足日常生产对设备的需要,防止因检查、保养不及时,导致设备故障率高而影响生产,尽量减少或避免因突发设备故障而给生产和品质带来影响,以致增加维修费用。 1.2 使用范围 本制度适用于设备、仪器及工装夹具的点检、检查及维护。 2 设备、仪器及工装夹具点检、检查及维护的分类。 2.1 生产设备及仪器的点检、维护。 2. 2 监视测量设备的点检、维护。 2. 3办公设备设施的检查、维护。 2. 4工装夹具的点检、检查及维护。 3. 设备、仪器及工装夹具的点检、检查及维护的要求。 3. 1明确责任者 3. 1. 1生产设备及仪器由使用人员负责日常点检,品证课人员负责定时的点检并对制造课 的点检表进行不定期的抽检,生产技术课负责设备及仪器的定期的点检、保养和维护工作。 3. 1. 2监视测量设备由使用人员负责日常点检,品证课负责对制造课的点检表进行不定期 的抽检,生产技术课负责设备及仪器的保养、维护和校正工作。 3. 1. 3办公设备设施的检查工作由使用者负责检查,对于公用的办公设备,需要总务课定

期进行检查,设备的保养和维护工作由生产技术课和专业人员共同进行。 3. 1. 4工装夹具的检查、保养及维护由操作人员进行,品证课负责设备的定时点检和对制 造课的点检表进行检查,生产技术负责对操作人的保养进行监督和检查。制造课准备班和生产技术课负责工装夹具的维修。 3. 2设备、仪器及工装夹具的点检、检查、保养及维护的内容及要求。 3. 2. 1设备、仪器及工装夹具的日常及定时点检:每日以点检人的目视、听觉、嗅觉、触 觉及一定的检测仪器为手段的检查过程。 3.2.2设备、仪器及工装夹具定期点检:以日常点检数据为基础,对设备全面详细地进行检查、判断、维护的过程。 3. 2. 3设备、仪器及工装夹具的检查:每天由使用人员对设备、仪器及工装夹具进行检查。 3. 2. 4设备、仪器及工装夹具的保养和维护:定期由生产技术课人员负责对设备、仪器及 工装夹具进行点检、保养和维护。 3. 2. 5品证课的不定期抽检主要是检查制造课人员的点检是否按照要求进行。 4. 设备、仪器及工装夹具的点检、检查、维护及保养的方法及要求。 4. 1每次生产开始,制造课操作员工按照点检表对设备、仪器及工装夹具进行点检。点检 者必须按点检表中的项目逐一对设备进行点检,同时将点检结果和运转中发现的问题以及处理情况认真作好记录。 4. 2每周由生产技术课人员按照制定好的生产设备保养计划对设备、仪器进行点检确认和 保养。 4. 3每三个月生产技术课人员要对品证课人员和制造课操作人员的点检记录进行确认和分 析。保证点检的有效执行和设备的正常运转。另外生产技术课设备、仪器及工装夹具保养的制定也是从点检记录中得出。 4.4对于不使用的设备,由生产技术课人员进行日常的点检和保养。 4.5工装夹具由制造课操作人员进行点检和维护,品证课负责定期检查制造课操作人员的点检和维护情况。制造课准备班和生产技术课负责工装夹具的维修。 4. 6设备、仪器及工装夹具的保养及维护内容根据保养计划和维修保养规程来执行。 4. 7办公设备的点检和检查由总务课进行。生产技术课只负责电脑和空调的保养和维护工 作。其余设备的维护和保养需要请专业人士负责。

Oracle__插入数据

Oracle 插入数据 插入数据就是将数据放置到已经创建的表中,Oracle 数据库是通过INSERT 语句来实现插入数据的。一般情况下,使用INSERT 语句可以一次插入一行数据。 与SELECT 语句相比,INSERT 语句的使用方式要简单的多。在INSERT 语句的使用方式中,最为常用的形式是在INSERT INTO 子句中指定添加数据的列,并在V ALUES 子句中为各个列提供一个值。 下面语句将向SCOTT 模式中的EMP 表添加一条记录: SQL> insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 2 values(7995,'A TG','CLERK',7782,to_date('2007-9-23','yyyy-mm-dd'),1300,null,10); 已创建 1 行。。 在向表中所有列添加数据时,可以省略INSERT INTO 子句后的列表清单,使用这种方法时,必须根据表中定义的列的顺序,为所有的列提供数据,用户可以使用DESC 命令查看表中定义列的顺序。下面的INSERT 语句在向EMP 表添加记录时省略了列清单: SQL> desc emp SQL> insert into emp 2 values(7996,'LI','CLERK',7782,to_date('2006-5-12','yyyy-mm-dd'),1200,null,10); 已创建 1 行。 在插入操作过程中,用户也可以根据实际情况只为部分列提供数据,而省略某些列的数据。注意这些列必须允许空值、有默认值或系统可以自动成生值等。例如,在EMP 表中,除EMPNO 列不允许空值外,其他列都可以为空值。 如果某个列不允许NULL 值存在,而用户没有为该列提供数据,则会因为违反相应的约束而插入失败。事实上,在定义表的时候为了数据的完整性,经常会为表添加许多约束。例如,在EMP 表中为了保证表中每条记录的惟一性,在表的EMPNO 列上定义了主键约束。如果用户试图为表中的EMPNO 列添加一个重复值,则因为违反主键约束而失败: SQL> insert into emp(empno,ename,job) 2 values(7782,'KING','CLERK'); insert into emp(empno,ename,job) * 第 1 行出现错误: ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP) 注 意 使用这种方法插入数据时有一个大隐患,如果为表指定的数值位置不对, 并且指定的数据类型之间可以转化,则执行该语句时系统不会返回任何错误信息。但是这会为该表添加一条错误的记录。由于这种错误难以发现,所以在添 加记录时最好在INSERT INTO 子句中指定列清单,以明确接收数据的列。

在oracle下创建DBlink全面总结

物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库,用户可以通过网络对异地数据库中的数据进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发人员无需关心网络的链接细节、数据在网络节点中的具体分布情况和服务器间的协调工作过程。 数据库之间的链接建立在DATABASE LINK上。要创建一个DATABASE LINK,必须首先在建立链接的数据库上设置链接字符串,即配置一个远程数据库的本地网络服务名。 链接字符串的配置参见《客户端连接服务器》一节。 数据库全局名称可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 修改可以用以下语句来修改参数值: ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE; <1>、当数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。 oracle数据库之间进行连接通讯。 创建数据库链接的语法如下: CREATE [PUBLIC] DATABASE LINK link CONNECT TO username IDENTIFIED BY password USING ‘connectstring’ 其中: --demona为用net8 easy config创建的连接字符串 目的方数据库的init.ora文件中的global_names设为false 重新启动数据库设置才能生效 或者用sys用户执行 注意:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK 的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。 一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。 创建数据库链接时,还可以使用缺省登录方式,即不指定远程数据库的用户名和密码:

oracle数据库的5种约束类型

oracle 数据库的 5 种约束类型 oracle 数据库数据表的 5 个约束类型: 1.主键约束 2.外键约束 3.唯一约束 4.检查约束 5. 非空约束 F 主键约束:用来唯一标示表中的一个列, 一个表中的主键约束只能有一个,但是可以在一个主键约束 中包含多个列,也称为联合约束。外键约束:用来约束两 个表中列之间的关系。唯一约束:用来唯一标示表中的 列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。检查约束:用来约束表中列的输入值得范围,比如 在输入性别时,要求数据库中只能输入男或者女,就可以使用检查约束来约束该列。非空约束:约束该列一定要输入值。 ----- 创建一个带检查约束的表:使用PL/SQL 语句创建检查约束的语法如下所示:CONSTRAINT constraint_name CHECK(condition) [ 语法说明:] CONSTRAINT: 关键词constraint_name: 约束名称condition: 约束条件列如:创建BOOKINFO 表时,给图书 价格加上一个检查约束,要求图书价格在10 元到100 元之间。CREATE TABLE BOOKINFO ( BOOKID

INT, BOOKNAME CAHR, PUBLISH

char, publish varchar2(20), pubdate varchar2(20), CHECK(PRICE>=10 AND PRICE ----- 创建一个带非空约束的表: 举例 :在创建 BOOKINFO 表时,给图书名称加上一个非空约束。 CREATE TABLE BOOKINFO ( BOOKID INT NOT NULL, BOOKNAME CHAR NOT NULL, PUBLISH PUBDATE VARCHAR2(20), AUTHOR CHAR, STORE ----- 创建一个带唯一约束的表 语法格式: CONSTRAINT constraint_name UNIQUE(column_name) 【语法说明】 UNIQUE: 唯一约束的关键词 column_name: 唯一约束的名称。 举例 :创建 BOOKINFO 表时,为图书名称( BOOKNAME )列添加唯一约束 create table bookinfo ( bookid int, bookname PRICE DECIMAL, AUTHOR CHAR, STORE VARCHAR2(1), READER INT, REMARKS VARCHAR2(50), CONSTRAINT CK_PRICE ); VARCHAR2(20), PRICE DECIMAL, VARCHAR2(1), VARCHAR2(50) READER INT, REMAERKS );

ORACLE 创建DBlink访问SQL SERVER数据库

Oracle中使用透明网关链接到Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的Oracle9i不包括连接到SQL Server的透明网关.就在一台单独的Windows 服务器上安装了透明网关用做Oracle访问SQL Server的桥梁. 环境如下: Oracle Database Server:Linux + oracle 9.2.0.4 IP:10.194.129.197 Transparent Gateway:Windows 2003 server IP: 10.194.129.225 MS SQL Server:Windows 2003 server + SQL Server 2005 IP: 10.194.129.225 1、Transparent Gateway for SQL Server安装 从Oracle 9i数据库安装光盘setup.exe安装,选择安装客户端

安装类型选择:管理员 安装完客户端后,重新运行setup.exe,安装产品选择Oracle 9i Database 9.2.0.1.0, 安装类型选择"自定义",安装组件选择Oracle Net Services和Oracle Transparent Gateways, 并在此项下选择Oracle Transparent Gateway for Microsoft SQL Server, 安装过程中可以不设置连接到SQL Server 的信息.如下图所示:

以下的IP地址及数据库以实际环境为准

oracle ALTER 用法

oracle ALTER 用法 1.如果sql语句中有''(单引号或者双引号)括的字符串,则需要同表中严格一致,不然会显示“找 不到行”这个错误。 alter语句的用法 需要修改结构的,就用到alter语句,方法如下: 1.ALTER TABLE语句用于修改已经存在的表的设计。 2.语法: ALTER TABLE table ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT index ] 3.ALTER TABLE table ADD CONSTRAINT multifieldindex 4.ALTER TABLE table DROP COLUMN field 5.ALTER TABLE table DROP CONSTRAINT indexname 6. 7.说明:table参数用于指定要修改的表的名称。 8.ADD COLUMN为SQL的保留字,使用它将向表中添加字段。 9.ADD CONSTRAINT为SQL的保留字,使用它将向表中添加索引。 10.DROP COLUMN为SQL的保留字,使用它将向表中删除字段。 11.DROP CONSTRAINT为SQL的保留字,使用它将向表中删除索引。 12.field指定要添加或删除的字段的名称。 13.type参数指定新建字段的数据类型。 14.size参数用于指定文本或二进制字段的长度。 15.indexname参数指定要删除的多重字段索引的名称。 16. 17.用sql*plus或第三方可以运行sql语句的程序登录数据库: 18. 19.ALTER TABLE (表名) ADD (列名数据类型); 20.ALTER TABLE (表名) MODIFY (列名数据类型); 21.ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名); /////不需要括号 22.ALTER TABLE (表名) DROP COLUMN (列名); 23.ALTER TABLE (当前表名) RENAME TO (新表名); 24. 25.如: 26.Alter Table Employ Add (weight Number(38,0)) ; 27. 28.Alter Table Employ Modify (weight Number(13,2)) ; 29. 30.Alter Table Emp Rename Cloumn weight To weight_new ; 31. ALTER TABLE emp DROP COLUMN weight_new ;

Sql server建立Oracle的链接服务器, 跟Oracle的dblink差不多

一、安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端。 Orcale有两种形式的客户端: ●完整的客户端 包括访问服务器端数据库的基本Oracle 的Microsoft OLE DB 访问接口需要Oracle Client Software Support File以及SQL*Net 。还包括用于配置客户端设置的工具、sqlplus、企业管理器等一系列的工具。 ●立即客户端(instant client) 这个客户端体积很小,但是只包括了访问orcale服务器的最基本的支撑驱动,没有设置管理工具,也找不到可用的图形界面。对客户端的设置需要手工就行。 目前orcale比较新的是oracle 10g版本,以这个版本为例。 1、下载oracle 10 的客户端 可以到orcale官方网站下载,需要先注册,然后下载。 下载适用于Microsoft Windows (32-bit)的Oracle Database 10g Client Release 2的客户端,下载地址:https://www.sodocs.net/doc/be17077805.html,/otn/nt/oracle10g/10201/10201_client_win32.zip 2、安装oracle 10 客户端 下载好后,解压,安装。 安装时有四个选项: ●Instantclient,相当于最小化安装。 ●管理员,完整安装。 ●运行时

自定义 为了管理方便,一般以管理员方式安装。 3、配置oracle 10 客户端 在客户端主要需要配置两个设置,命名方法和服务器别名,还有一个监听程序是服务端需要用的,用来监听客户端的访问,客户端不必设置监听程序。 这些设置都能在net manager工具中进行,在oracle程序组中的“配置和移植工具”中的“net manage r”。如图所示: 概要文件就是用来设置命名方法和验证方式的的

Oracle 建表(一对多)代码及相关约束示例

建表(一对多)代码及相关约束 create table t_class( c_id number(3) primary key, c_name varchar2(20) not null ); create table t_stu( s_id number(5) primary key, s_name varchar2(8) not null, sex char(2) default '男', birthday date, school_age number(2) check(school_age>0), school_score number(5,2), c_id number(3), id_card char(18) unique, foreign key(c_id) references t_class(c_id) ); 附:测试数据: insert into t_class values(1,'订单班'); insert into t_class values(2,'开发班'); insert into t_class values(3,'美工班'); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (1, 'a', '男', to_date('01-01-1980', 'dd-mm-yyyy'), 24, 90, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (2, 'b', '男', to_date('11-05-1981', 'dd-mm-yyyy'), 23, 80, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (3, 'c', '女', to_date('19-09-1982', 'dd-mm-yyyy'), 22, 50, 1, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD) values (4, 'd', '女', to_date('28-01-1984', 'dd-mm-yyyy'), 21, 80, 2, null); insert into T_STU (S_ID, S_NAME, SEX, BIRTHDAY, SCHOOL_AGE, SCHOOL_SCORE, C_ID, ID_CARD)

SQL_Server使用DBLink访问Oracle数据库

SQL Server使用DBLink访问Oracle数据库 1、准备工作 A、在SQLServer数据库所在服务器须安装Oracle客户端,客户端版本不低于Oracle数据库版本; B、在SQL Server数据库所在服务器安装Oracle Client,配置Oracle Net Manager (与Oracle所在服务器配置相同),如下图: C、测试配置是否成功,使用SQLPLUS命令行窗口登录,如果能够登录成功说明配置正确; 命令说明:Username/Password@Connect_identifier

2、建数据库和相应的表格(例:新建表TXF000HGB01): A、获取Oracle栏位信息 B、新建表 (注:Oracle相应的栏位的数据类型需要转化为SQL对应的数据类型,如oracle 的varchar2类型对应SQL的varchar类型,number类型对于numeric类型)新建表TXF000HGB01命令 USE [LHERP] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[TXF000HGB01]( CO VARCHAR(6) NOT NULL, DTID VARCHAR(4) NOT NULL, VHNO VARCHAR(15) NOT NULL, ITM VARCHAR(7) NOT NULL, DTDAT VARCHAR(12) NOT NULL, NL VARCHAR(1) NOT NULL, PZID VARCHAR(3), TX VARCHAR(4) NOT NULL, STK VARCHAR(12) NOT NULL, DLMK VARCHAR(1), TRDLMK VARCHAR(1), ECMK VARCHAR(1), PI_STATUS char(1) NULL, DT datetime NULL, UPDT datetime NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO C、执行新建表命令,表创建成功。 3、建连接服务器(DBLINK):

Oracle 插入数据

Oracle 插入数据 插入数据就是将数据放置到已经创建的表中,Oracle 数据库是通过INSERT 语句来实现插入数据的。一般情况下,使用INSERT 语句可以一次插入一行数据。 与SELECT 语句相比,INSERT 语句的使用方式要简单的多。在INSERT 语句的使用方式中,最为常用的形式是在INSERT INTO 子句中指定添加数据的列,并在V ALUES 子句中为各个列提供一个值。 下面语句将向SCOTT 模式中的EMP 表添加一条记录: SQL> insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) 2 values(7995,'A TG','CLERK',7782,to_date('2007-9-23','yyyy-mm-dd'),1300,null,10); 已创建 1 行。。 在向表中所有列添加数据时,可以省略INSERT INTO 子句后的列表清单,使用这种方法时,必须根据表中定义的列的顺序,为所有的列提供数据,用户可以使用DESC 命令查看表中定义列的顺序。下面的INSERT 语句在向EMP 表添加记录时省略了列清单: SQL> desc emp SQL> insert into emp 2 values(7996,'LI','CLERK',7782,to_date('2006-5-12','yyyy-mm-dd'),1200,null,10); 已创建 1 行。 在插入操作过程中,用户也可以根据实际情况只为部分列提供数据,而省略某些列的数据。注意这些列必须允许空值、有默认值或系统可以自动成生值等。例如,在EMP 表中,除EMPNO 列不允许空值外,其他列都可以为空值。 如果某个列不允许NULL 值存在,而用户没有为该列提供数据,则会因为违反相应的约束而插入失败。事实上,在定义表的时候为了数据的完整性,经常会为表添加许多约束。例如,在EMP 表中为了保证表中每条记录的惟一性,在表的EMPNO 列上定义了主键约束。如果用户试图为表中的EMPNO 列添加一个重复值,则因为违反主键约束而失败: SQL> insert into emp(empno,ename,job) 2 values(7782,'KING','CLERK'); insert into emp(empno,ename,job) * 第 1 行出现错误: ORA-00001: 违反唯一约束条件 (SCOTT.PK_EMP) 关于为表定义完整性约束,将在后面的章节中介绍,这里需要记住的是在向表添加记录时,添加的数据必须符合为表定义的所有完整性约束。 INSERT 语句还有一种用法,可以实现一次向表中添加一组数据。即使用SELECT 语句替换V ALUES 子句,这样由SELECT 语句提供添加的数值。例如,下面的示例从EMP 表提注 意 使用这种方法插入数据时有一个大隐患,如果为表指定的数值位置不对, 并且指定的数据类型之间可以转化,则执行该语句时系统不会返回任何错误信 息。但是这会为该表添加一条错误的记录。由于这种错误难以发现,所以在添加记录时最好在INSERT INTO 子句中指定列清单,以明确接收数据的列。

Database Link 简单介绍

Database Link 简要介绍 Database Link(数据库链接)定义从一个Oracle数据库到另一个数据库的单行通信通道。在做分布式数据库时难免用到dblink。oracle 使用database link来创建频繁到其他数据库中对象的访问路径。一旦创建了数据库链接,就可以像在本地Oracle数据库一样,对远程(或本地)数据库发出 DML(Data Manipulation Language)命令,但大部分数据库链接都不允许DDL(Data Definition Language)操作。数据库链接分为私有数据库链接和公有数据库链接两种。 操作步骤: 1、链接字符串即网络服务名,首先在本地配置一个网络服务名,地址指向远程的数据库地址,网络服务名取为将来你要使用的数据库链名,也就是tnsnames.ora中描述的那个,如'WMS' WMS =(服务名可以和实例名不相同,只是一个别名而已) (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 2、创建数据库链接 简易语法: CREATE PUBLIC DATABASE LINK orcl_link CONNECT TO userName IDENTIFIED BY password USING ‘connect_string’; 语法解释: public 表示创建公有的dblink; orcl_link为dblink的名字,以后在sql语句中使用的连接名;在init.ora文件中,如果GLOBAL_NAMES=true,则这个dblink必须与数据库全局名相同.为了方便,可以ALTER SYSTEM SET GLOBAL_NAMES=FALSE。(远程数据库的全局名可以通过登陆远程机,执行SELECT * FROM global_name得到) userName和password 要连接的数据库的合法用户名和密码; connect_string为tnsnames.ora文件中定义的一个网络服务名(服务名为连接描述符创建别名),可以是经过Net Configuration Assistant配置的(tnsnames.ora)且经测试可以连接的别名,例如:WMS。 具体操作方法: 进入SQL>操作符下,运行命令: SQL> CREATE PUBLIC DATABASE LINK WMS_link CONNECT TO user_x IDENTIFIED BY xxx USING 'WMS';

Oracle基础练习题及答案(表约束)

练习作业 创建表emp1,字段如下 eno char(3), ename char(6) sex char(2) age number(2) dno char(3) 并插入如下数据 1 ,TOM ,男,21 ,’001’ 2 ,JERRY ,男,21 ,’002’ 3 ,KATE ,女,21 ,’003’ 4 ,MARY ,女,21 ,’004’ 5 ,JACK ,男,21 ,’005’ i.在eno字段上创建主键约束 ii.在ename字段上创建非空约束 iii.创建检查约束判断age在18到60岁之间的男性或者age在18到55岁之间的女性iv.在dno字段上创建唯一性约束 create table emp1( eno char(3) primary key, ename char(6) not null, sex char(2), age number(2), dno char(3) unique, constraint sex_age check( ((age between18and60) and sex='男') or ((age between18and55) and sex='女')) ) insert into emp1 values('1','TOM','男',21,'001') insert into emp1 values('2','JERRY','男',21,'002');

insert into emp1 values('3','KATE','女',21,'003'); insert into emp1 values('4','MARY','女',21,'004'); insert into emp1 values('5','JACK','男',21,'005'); v.创建和emp1表字段相同的emp_bak表,将emp_bak表的eno字段与emp表的eno字段创建外键约束 create table emp_bak as select * from emp1 where1=2 alter table emp_bak add constraint v foreign key(eno) references emp1(eno); 1、请创建一个表,表名为phone,表结构如下 电话号码(PHONENUM VARCHAR2(8)) 电话费(PAY number(8,2)) 号码等级(NUMLEVEL VARCHAR2(4)) 费用日期(PAYDATE varchar2(12) create table phone ( phonenum varchar2(8), pay number(8,2), numlevel varchar2(4), paydate varchar2(12) ) 1)插入以下两条数据. 123456, 600, pt04, 20051220 888888, 900, pt05, 20051019. insert into phone values('123456',600,'pt04', '20051220'); insert into phone values('888888',900,'pt05', '20050919');

达梦连接oracle配置说明

达梦连接oracle配置说明 武汉达梦数据库 2017年6月

目录 达梦连接oracle配置说明 (i) 第1章需求描述 (2) 第2章配置说明 (3) 2.1配置准备 (3) 2.2配置说明 (3) 2.2.1 部署oracle客户端 (3) 2.2.2 拷贝动态库文件 (5) 2.3创建DBLINK (6) 2.3.1 创建DBLINK (6) 2.3.2 实现数据同步 (6) 第3章附件 (8)

第1章需求描述 为了方便和oracle共享数据,达梦实现了和oracle之间的DBLINK功能,在达梦中建立了到oracle的DBLINK后,在达梦中可对oracle进行增删改查操作,但是需遵循达梦的语法,且支持的功能有限,对于复杂的操作,不建议使用该功能;

第2章配置说明 为了实现该DBLINK功能,需要在达梦数据库所在的服务器中部署oracle客户端,且将一些动态库文件放置在$DAMENG_HOME/BIN下,之后重启达梦数据库即可; 2.1配置准备 1、部署于linux64上的达梦数据库; 2、部署于linux64上的oracle数据库; 3、Linux64版本的oracle客户端;具体可见附件,包括三个文件; 2.2配置说明 2.2.1部署oracle客户端 1、创建oracle客户端软件存储路径,通过filezilla等工具将oracle客户端传输到对应文件夹中 mkdir -p /home/soft_bak 2、解压三个压缩文件 unzip instantclient-basic-linux.x64-11.2.0.4.0.zip unzip instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip unzip instantclient-sdk-linux-x86-64-11.2.0.2.0.zip 3、创建oracle客户端的base路径,并部署 mkdir -p /home/oracle mkdir -p /home/oracle/sdk mkdir -p /home/oracle/network/admin cd /home/soft_bak/instantclient_11_2/ mv sdk/* /home/oracle/sdk

Oracle 外键约束

Oracle 外键约束 外键FOREIGN KEY约束是几种约束是最复杂的,外键约束可以使两个表进行关联。外键是指引用另一个表中的某个列或某几个列,或者本表中另一个列或另几个列的列。被引用的列应该具有主键约束,或者惟一性约束。 在外键的定义中,涉及到外键表、外键列、被引用表和被引用列等几个概念。如果成功地创建了外键约束,那么系统将要求外键列中的数据必须来自被引用列中的数据。被引用列中不存在的数据不能存储于外键列中。在一般情况下,当删除被引用表中的数据时,该数据也不能出现在外键列中。如果外键列存储了将要在被引用表中删除的数据,那么对被引用表删除数据的操作将失败。 最典型的外键约束是HR模式中的EMPLOYEES和DEPARTMENT表,在该外键约束中,外键表EMPLOYEES中的外键列DEMPARTMENT_ID将引用被引用表DEPARTMENTS 中的DEMPARTMENT_ID列。 例如,在以下的示例中,将以HR身份连接到数据库,并创建一个新表ADMINISTRATION_EMP,并为其添加到DEPATRMENT表的外键约束:SQL> connect hr/hr 已连接。 SQL> create table administration_emp 2 as select * from hr.employees 3 where department_id=10; 表已创建。 SQL> alter table administration_emp 2 add constraint admin_dep_fk 3 foreign key(department_id) 4 references departments(department_id); 表已更改。 为验证创建的外键约束的有效性,可以向ADMINISTRATION_EMP表添加一条记录,并且它的DEPARTMENT_ID列值不存在DEPARTMENTS表中,那么插入操作将会因为违反外键约束而失败: SQL> insert into administration_emp( 2 employee_id,last_name,email,hire_date,job_id,department_id) 3 values(120,'刘丽','li@https://www.sodocs.net/doc/be17077805.html,',sysdate,'HR_REP',360); insert into administration_emp( * 第 1 行出现错误: ORA-02291: 违反完整约束条件(HR.ADMIN_DEP_FK) - 未找到父项关键字 注意在一个表上创建外键约束时,被引用表必须已经存在,并且必须为该表的引用列定义惟一性约束或主键约束。

Oracle10g通过DBLink访问MySQL数据(Windows)

Oracle10g通过DBLink访问MySQL数据 安装环境:Windows_Server2003, Oracle10gR2, MySQL4(服务器版在另外电脑上),MySql-Connector3.51(客户端ODBC驱动) 。 1、安装前下载安装包 MySql-Connector 3.51下载地址: https://www.sodocs.net/doc/be17077805.html,/downloads/connector/odbc/3.51.html#downloads x32位 https://www.sodocs.net/doc/be17077805.html,/mysql/Downloads/Connector-ODBC/3.51/mysql-connector-odbc-3. 51.27-win32.Msi 2、安装MySQL的Client端软件 双击下载的MySql-Connector 3.51安装文件。 (图1)

(图2) 3、配置ODBC数据源 配置odbc数据源,在控制面板中配置就可以了,使用系统DSN,取名为mysql (图3)

(图4) Data Source Name :输入mysql Description : 输入说明 Server:输入MYSQL服务器的IP地址 User:访问MYSQL服务器的用户名 Password:访问MYSQL服务器的密码 Database:访问MYSQL的数据库 在Connect Options选项的Port 输入端口号,默认是3306 点OK按钮保存,Test按钮测试设置的内容是否可以链接 在命令行中执行下列命令,应能够顺利登入MySQL Client窗口,即证明ODBC功能正常:isql -v test quit 4、创建init mysql.ora 文件存放位置E:\oracle\product\10.2.0\db_1\hs\admin 文件夹下, 文件内容如下: HS_FDS_CONNECT_INFO = mysql HS_FDS_TRACE_LEVEL = 0 备注:文件名中蓝色部分为ODBC中创建的名称 5、配置listener文件

工装夹具管理规范

工装夹具管理规范 1. 目的:明确工装夹具的申请、设计、验收、 用、保养、维护、保管、报废、型号命名方法,确保工装夹具处于受 控状态,增加工装夹具的使用寿命,保证产品品质。 2. 适用范围:适用于公司产品所涉及到的所有工装夹具。 工装夹具:辅助生产、检验使用的工具3.名词解释: 或辅助物品。检测工装:主要指生产时用来测试用的 自 制或委外加工的装置(测试工装)。 4. 职责: 4.1. 技术部(工艺)负责制定工装夹具管理规范。 4.2.技术部工艺、设备工程部负责对工装夹具的评估、设计。 4.3.设备工程部负责对工装夹具验收、点检、保养、报废、建档和维护管理工作。 4.4. 生产部负责对所使用的工装夹具申请、保管、领用、归还。 5. 内容与要求: 5.1. 工装夹具的申请 5.1.1. 新产品导入时,由研发部根据客户需要和产品的特殊性或生产要求集中提出采购申请; 5.1.2. 量产过程中现场生产人员/ 现场工艺人员可以根据实际生产需要提出(数量添置/ 制成改善)采购申请; 5.1.3. 所有的申请必须填写《物料申购单》,申请必须注明工装夹具名称,型号,用途和数量要求,以及使用要求说明。

5.2. 工装夹具的设计

5.2.1. 技术部(工艺)根据工艺要求和实际操作,设计出合理的工 装夹具; 5.2.2. 设备工程部依据设计方案提出采购需 求; 5.2.3. 工装夹具制成后,由技术部(工艺)、设备工程部进行验收,检验其是否满足生产质量需要。 5.3. 工装夹具的验收: 5.3.1. 工装夹具入厂时,设备工程部应根据技术部提供的夹具清单进行清点,核对送货清单,经核对无误后,签收工装夹具; 5.3.2. 工装夹具签收后由技术部、设备工程部进行测试, 验证其关键尺寸和是否能达到生产要求,并填写《工装验证报告》,验收完成后将验收文件和相关技术资料归档保存。 5.4. 工装夹具的使用: 5.4.1. 按照工艺指导的方法正确使用工装夹具,轻拿轻放,不可以私自改装工装夹具;5.4.2. 使用前先按照保养方法进行检查治具,数量是否够用; 5.4.3. 每班使用完毕后,应对工装进行清洁,并摆放整齐。 5.5. 工装夹具的保养: 5.5.1. 工装夹具保养由操作人员和设备工程人员进行,操作人员负责使用过程中的日常保养,设备工程人员负责月点检保养; 5.5.2. 每班检查夹具外观是否良好; 5.5.3. 每班检查工装夹具探针弹簧性能是否正常; 5.5.4. 每班检查各连接线焊点是否结实,不

Oracle 禁止和激活约束

Oracle 禁止和激活约束 在默认情况下,约束创建之后就一直起作用。但是,也可以根据具体应用情况,临时禁用某个约束。当某个约束被禁用后,访约束就不再起作用了,但它还存在数据库中。 为什么要禁用约束呢?这是因为约束的存在会降低插入和更改数据的效率,系统必须确认这些数据是否满足定义的约束条件。当执行一些特殊操作时,如使用SQL*Loader从外部数据源向表中导入大量数据,并且事先知道操作的数据满足了定义的约束,为提高运行效率,就可以禁用这些约束。 但是,禁用约束只是一种暂时现象,某些在禁用约束状态下完成的操作完成之后,还应该激活约束。如果约束没有必要存在,则可以删除约束。 禁用约束即可以在定义约束时执行,也可以对现有的约束执行禁用操作。在使用CREATE TABLE或ALTER TABLE语句定义约束时,默认情况下约束是激活的。如果在定义约束时使用关键字DISABLE,则约束的是被禁用的。如果希望禁用已经存在的约束,则可以在ALTER TABLE语句中使用DISABLE CONSTRAINT子句。其语法形式如下:alter table table_name disable constraint constraint_name; 如果希望激活被禁用的约束,则可以在ALTER TABLE语句中使有ENABLE CONSTRAINT子句激活约束。激活约束的语法形式如下: alter table table_name enable [novalidate | validate] constraint constraint_name; 关键字NOV ALIDATE表示在激活约束时不验证表中已经存在的数据是否满足约束,如果没有使用该关键字,或者使用V ALIDATE关键字,则在激活约束时系统将要验证表中的数据是否满足约束的定义。 例如,下面的语句在创建EMPLOYEES表时将定义的约束置为禁用状态: create table employee_history( ... salary number(8,2) constraint emp_sal_ck check (salary>0) disable, ... ) 需要注意,在禁用主键约束时,Oracle默认会删除约束对应的惟一索引,而在重新激活约束时,Oracle将会为重新建立惟一索引。如果希望在删除约束时保留对应的惟一索引,可以在禁用约束时使用关键字KEEY INDEX。例如,下面的语句在禁用主键约束时保留在相应的索引: alter table employees disable constraint emp_pk keep index; 在禁用惟一性约束或主键约束时,如果有外键约束正在引用该列,则无法禁用惟一性约束或主键约束。这时可以先禁用外键约束,然后再禁用惟一性约束或主键约束;或者在禁用惟一性约束或主键约束时使用CASCADE关键字,这样可以级联禁用引用这些列的外键约束。 例如,在下面的示例中,将禁用EMPLOYEES表的EMP_PK主键约束,然后再重新激活该约束。 (1)以SCOTT身份连接数据库系统。

相关主题