`

工作积累(表空间、导出方案、触发器)1

阅读更多

--查看表空间、数据文件相关信息

1、查看表空间包含哪些数据文件
SELECT T.FILE_NAME,T.TABLESPACE_NAME FROM DBA_DATA_FILES T
WHERE T.TABLESPACE_NAME='TBS_PKIQ'
 


2、查看表空间 包含哪些内容
SELECT T.owner,T.segment_name,T.segment_type,T.tablespace_name FROM DBA_SEGMENTS T
WHERE T.tablespace_name='TBS_PKIQ'
 

--导出方案

导出方案(包括数据):
exp  nap/hs_hn_nap@jwzh  file=g:\nap.dmp  log=g:\nap.log  owner=nap
导出方案结构(不含数据):
      1、打开命令窗口;  2、输入exp;  3、输入用户名-密码@服务名;  4、...按提示操作...

导入方案 (导入的用户名、表空间需与被导入数据的一致) (导入方案结构与导入方案数据方法一样):
imp nap/hs_hn_nap@orcl  file=g:\nap.dmp  log=g:\nap_imp.log full=y


导出表空间:
exp pcs/hs_hn_pcs@jwzh tablespaces=TBS_HY  file=d:\tbs_hy.dmp log=d:\tbs_hy.log

导入表空间:
exp  pcs/hs_hn_pcs@jwzh  file=d:\tbs_hy.dmp  tablespaces=TBS_HY  log

 

--触发器

自述:在触发器内判断一个操作具体是什么操作,可以通过判断该表字段的
:OLD.字段,:NEW.字段 是否空值来判断是 插入、更新还是删除操作。


1.语句触发器
              语句触发器是指当执行DML语句时被隐含执行的触发器。如果在表
上针对某种DML操作建立了语句触发器,那么当执行DML操作时会自动执行触发器的相应代码。当审计DML操作,或者确保DML操作安全执行时,可以使用语句触发器。当使用语句触发器时,不能记录列数据的变化。建立语句触发器的语法如下:
CREATE [OR REPLACE] TRIGGER trigger_name
   timing event1 [OR event2 OR event3]
  ON table_name
   PL/SQL block;
其中,timing用于指定触发时机(BEFORE或AFTER);event用于指定触发事件(INSERT、UPDATE和DELETE);table_name用于指定DML操作所对应的表名。
E.G:
CREATE OR REPLACE TRIGGER tr_sec_emp
BEFORE INSERT OR UPDATE OR DELETE ON emp
BEGIN
  IF to_char(sysdate,’DY’,’nls_date_language=AMERICAN’)
  IN(‘SAT,’SUN’) THEN
  raise_application_error(-20001,’不能在休息日改变雇员信息’);
   END IF;
END;

2.行触发器
         行触发器是指当执行DML操作时,每作用一行被触发一次的触发器。
  当审计数据变化时,可以使用行触发器。建立行触发器语法:
 CREATE [OR REPLACE] TRIGGER trigger trigger_name
   timing event1 [OR event2 OR event3]
   ON table_name
   [REFERENCING OLD AS old | NEW AS new]
   FOR EACH ROW
   [WHEN condition]
   PL/SQL block;
其中,timing用于指定触发时机(BEFORE或AFTER);event用于指定触发事件(INSERT、UPDATE、DELETE);REFERENCING子句用于指定引用新、旧数据的方式,默认情况下使用old修饰符引用旧数据,使用new修饰符引用新数据;table_name用于指定DML操作所对应的表;FOR EACH ROW表示建立行触发器;WHEN子句(可选)用于指定触发条件。示例如下:
CREATE OR REPLACE TRIGGER tr_sal_change
AFTER UPDATE OF sal ON emp
FOR EACH ROW
DECLARE
  v_temp INT;
BEGIN
  SELECT count(*) INTO v_temp FROM audit_emp_change
 WHERE name=:old.ename;
  IF v_temp=0 THEN
 INSERT INTO audit_emp_change
 VALUES(:old.ename,:old.sal,:new.sal,SYSDATE);
  ELSE
 UPDATE audit_emp_change
   SET oldsal=:old.sal,newsal=:new.sal,time=SYSDATE
   WHERE name=:old.ename;
  END IF;
END;
/

分享到:
评论

相关推荐

    sysbase导入导出、备份还原、存储过程、触发器.doc

    假设我们有一个名为`demo1`的表,我们可以通过以下步骤将其导出: 1. 执行`bcp demo1 out demo1.txt -S <ServerName> -U <Username> -P <Password>`,这会将`demo1`表的数据导出到名为`demo1.txt`的文本文件中,...

    plsql导出导入oracle表结构方法

    - 导出文件包含了创建表的DDL语句以及其他相关的数据库对象,如索引、触发器等。 - 导出时可以自定义过滤条件,比如仅导出部分表或特定模式下的表。 4. **示例**: - 例如,如果要导出名为 `orders` 的表结构,...

    oracle 创建表空间 导入导出

    oracle 创建表空间 导入导出 详细阐述 oracle创建用户,表空间 及导入导出数据的个人经验。

    oralce触发器

    在Oracle数据库中,可以将针对同一表的多个DML操作(插入、更新、删除)的触发器合并成一个触发器,前提是这些操作发生在相同的触发器级别上(即行级或语句级)。 **示例:** ```sql DROP TRIGGER BOOKSHELF_BEF_...

    Oracle数据库表结构导出工具Excel

    在日常的数据库管理工作中,有时我们需要将数据库的表结构导出到其他格式,如Excel,以便进行数据分析、报表制作或共享给非技术人员。"Oracle数据库表结构导出工具Excel"就是为了解决这样的需求而设计的。 DBExport...

    C#导出Excel复杂表头解决方案

    1. **创建工作簿和工作表**:初始化Excel文档,创建新的工作簿和工作表。 2. **设置单元格值**:在指定的行和列位置写入文本、数字或日期等数据。 3. **处理复杂表头**:利用NPOI的API进行单元格合并,创建多级标题...

    Navicat for MySQL导出表结构脚本的简单方法

    使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法。 1、右键Navicat中的数据库→数据传输(Data Transfer)。 2、左边数据库对象(Database Objects)中选择对应的表,右边目标(Target)中选择文件(File)...

    创建oracle表空间,快速导入导出表

    创建oracle表空间,快速导入导出表,速度快,效率高,导入导出完整

    oracle导入时表空间不一致解决方法

    这一步骤确保了索引和其他依赖项能够在新的表空间环境下正常工作。 ##### Step 5: 导入数据(Import Data) 最后,使用`imp`命令将数据导入到目标系统中。为了避免由于表空间不一致导致的问题,可以添加`ignore=y`...

    PowerDesigner导出数据表结构

    3. 调整导出设置,比如选择SQL脚本语言(如SQL Server、Oracle等)、编码、是否包含索引和触发器等。 4. 选择导出格式,如SQL脚本、XML、HTML或Word文档等。 5. 执行导出操作,保存生成的文件。 总的来说,...

    触发器结果导出.xls

    触发器结果导出.xls

    Pl_Sql导出表结构的插件(导出World文挡)

    在实际工作中,有时我们需要将数据库中的表结构导出为文档,方便共享、分析或作为文档记录。"Pl_Sql导出表结构的插件(导出World文挡)"就是这样一个工具,它能够帮助我们快速、便捷地生成关于表结构的Word文档,这...

    解决Oracle导出dmp文件空表导不出问题.docx

    通过上述两个解决方案,可以有效地解决Oracle数据库中导出DMP文件时遇到的空表导出问题。首先,通过调整`deferred_segment_creation`参数的值,可以确保未来创建的空表能够在导出时不出现问题;其次,通过为现有空表...

    oracle11g expdp impdp 分区表重映射导出导入数据迁移方案

    oracle expdp impdp 分区表重映射导出导入 数据迁移方案,以SI01用户为例子,将用户分区表导出后,将分区表重映射到新的表空间,完成数据迁移和检查。照方案例子按步去做,一定能成功。

    Sql Server 存储过程的导出导入.doc

    此外,如果存储过程中引用了源数据库特有的对象(如表、视图或函数),在导入到新环境中时可能需要调整依赖关系。 在实际应用中,存储过程的导出和导入非常实用,例如在数据库迁移、备份恢复、开发测试和版本控制等...

    oracle11G-解决空表导出的问题

    - 空表导出的问题通常在于如何确保即使没有数据,也要将表结构和相关的对象(如索引、触发器、存储过程等)导出。 3. **使用expdp导出空表**: - 首先,你需要创建一个导出参数文件(.parfile),指定要导出的空...

    使用PLSQL导出导入表

    可以设置导出的数据格式(如DMP、CSV等)、表空间信息以及是否包含索引、触发器等关联对象。导出过程完成后,会生成一个文件,包含所有选定对象的信息。 3. **导入表** 对于导入操作,同样可以在“工具”菜单中...

    oracle下导出某用户所有表的方法

    可以使用参数文件来导出数据,该文件中可以指定多种参数,例如要导出的表空间、表名称、文件名等。 使用 PL/SQL 导出用户对象 可以使用 PL/SQL 工具来导出用户对象,例如视图、存储过程、函数等。首先,需要登录到...

    存储过程、函数、触发器和包

    存储过程、函数、触发器和包

Global site tag (gtag.js) - Google Analytics