`
最王座
  • 浏览: 140508 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle通过存储过程建立表、index、sequence、trigger等

阅读更多

在Oracle环境下,通过存储过程实现:

判断表是否存在,如果不存在,就创建。

在新建表的同时建立对应的index。

又因为需要让主键自动增长,所以需要建立sequence和trigger。

 

sql脚本如下所示:

DECLARE
	tb_exists NUMBER ;
BEGIN
	SELECT COUNT (*) INTO tb_exists FROM user_tables WHERE table_name = 'TB_USER' ;
	IF tb_exists = 0 THEN
		EXECUTE IMMEDIATE 'create table TB_USER(  
				USER_ID     NUMBER(30) PRIMARY KEY,
				USER_CODE   VARCHAR2(100),
				USER_NAME   VARCHAR2(100)
       )' ;
		
		EXECUTE IMMEDIATE 'create index idx_00000111111 on tb_user(user_code)';
		EXECUTE IMMEDIATE 'create index idx_00000222222 on tb_user(user_name)';
		EXECUTE IMMEDIATE 'CREATE SEQUENCE TB_USER_sequence 
											INCREMENT BY 1
											START WITH 1
											NOMAXVALUE
											NOCYCLE
											NOCACHE';
		EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER TB_USER_trigger BEFORE INSERT ON TB_USER FOR EACH ROW WHEN (NEW.USER_ID IS NULL)
											BEGIN
												SELECT TB_USER_sequence.nextval INTO:NEW.USER_ID FROM dual ;
											END;';
	END IF ;
END ;

执行sql脚本成功。

分享到:
评论

相关推荐

    oracle 系统表大全

    - 包括但不限于: CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED 和 VIEW。 - `SELECT * FROM dba_objects;`:列出...

    oracle系统表查询

    这些对象类型包括CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PACKAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW等。 ### 四、表 - **`SELECT * FROM dba_...

    oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文

    在Oracle数据库管理中,SQL(Structured Query Language)是用于创建、...在实际应用中,根据业务需求可能还需要考虑其他因素,如分区、约束、存储过程、视图等。掌握这些基本操作对于理解和管理Oracle数据库至关重要。

    Oracle 系统表大全

    在Oracle数据库管理中,系统表是极其重要的组成部分,它们用于存储数据库元数据,包括但不限于用户、表空间、对象等信息。对于DBA(数据库管理员)来说,熟悉并掌握这些系统表是管理和维护数据库的基础。 #### 1. ...

    oracle数据库开发规范.pdf

    6. 触发器(trigger): 是在数据库表上定义的一种特殊的存储过程,它会在特定事件发生时自动执行,例如“test_tab2_trigger”。 7. 函数(function): 类似于存储过程,但返回一个值,文档中并未明确提及。 8. 包...

    oracle自带建表命令

    8. **自增序列**:Oracle不直接支持自增字段,但可以通过序列(SEQUENCE)和触发器(TRIGGER)实现类似功能。序列创建: ``` CREATE SEQUENCE seq_StudentID START WITH 1 INCREMENT BY 1; ``` 9. **索引**...

    oracle删除用户下的对象

    在Oracle中,一个用户是一个具有特定权限的角色,可以创建并管理数据库对象,如表、视图、索引、存储过程等。这些对象存储在特定的模式(SCHEMA)下,模式和用户通常是同名的。 删除用户下的所有对象需要遵循一定的...

    oracle数据库迁移

    grant create session, unlimited tablespace, create table, create cluster, create sequence, create procedure, create trigger, create type, create operator, create indextype to pms; 为用户赋予权限。 五...

    oracle hr用户创建脚本

    一个模式在Oracle中相当于一个逻辑数据库,它可以包含表、视图、索引、存储过程等对象。 在Oracle HR创建脚本中,首先我们需要了解一些基本概念: 1. **用户(User)**:在Oracle中,用户是数据库的访问者,拥有...

    oracle所有的系统权限

    簇是一种特殊的表组织方式,用于存储多个表中的行,以提高查询性能。拥有此权限的用户可以更改簇的结构、存储选项等。 2. **ALTER ANY INDEX**:该权限使用户能够修改任意索引(Index)的定义。索引是数据库中用于...

    oracle创建各种对象

    在Oracle数据库系统中,创建各种...通过理解和熟练使用这些Oracle对象,开发者能够构建复杂的数据库应用程序,优化查询性能,实现数据处理自动化,并确保数据一致性。Oracle学习的过程中,掌握这些概念和操作至关重要。

    Oracle 对系统表操作

    Oracle数据库系统包含了大量的系统表,这些表存储了关于数据库的各种元数据,如用户信息、表空间、数据库对象、表、索引、序列、视图、聚簇、快照、同义词、数据库链接以及触发器等。通过查询这些系统表,DBA...

    Oracle数据库实战培训

    4. **优良的存储功能**:Oracle数据库支持多种存储选项,包括分区、压缩等功能,这些高级特性有助于提高数据处理性能。 #### 二、Oracle体系结构 Oracle数据库的体系结构主要包括以下几个组成部分: 1. **数据...

    oracle权限全集

    这些权限涵盖了Oracle数据库中的大部分操作,通过合理分配和管理这些权限,管理员可以确保每个用户只能访问和操作他们被授权的数据和对象,从而提高系统的安全性和稳定性。同时,权限管理也是数据库审计和合规性要求...

    oracle设定自增长列

    此外,表空间被设置为`TEMP`,这可能意味着该表用于临时存储或特定的工作负载场景。 ### 创建序列 接下来,通过`CREATE SEQUENCE`语句创建了一个名为`BY1`的序列。序列在Oracle数据库中用于生成一系列连续的整数值...

    Oracle系统权限说明

    - 创建权限(CREATE ANY...): 包括创建簇、索引、存储过程、序列、快照、同义词、表、触发器、视图,以及创建公共数据库链接、公共同义词、角色、回滚段、会话、表空间和用户。 - 删除权限(DROP ANY...): 包括...

    Oracle删除

    这将删除用户及其所有表、索引、存储过程等。 九、回收空间 删除操作后,可能需要回收已释放的空间。`PURGE`命令可用于回收回收站中的对象,`DBA`可以使用`DBMS_RECYCLE`包进行更高级的空间管理。 十、安全考虑 ...

Global site tag (gtag.js) - Google Analytics