ORACLE常用脚本示例

create table DBO.INDEX_POLICY_TBL
(
ID NUMBER(10) NOT NULL PRIMARY KEY,
POLICY_ID NUMBER(10,0) default (-1) NOT NULL,
ALARM_COUNT NUMBER(10) default (0) NOT NULL
);

ALTER TABLE DBO.INDEX_POLICY_TBL ADD(C_NAME_1 VARCHAR2(64 CHAR) NOT NULL, C_NAME_2 VARCHAR2(64 CHAR) NOT NULL);

ALTER TABLE DBO.INDEX_POLICY_TBL RENAME COLUMN C_NAME_1 TO C_NAME_1_NEW;

ALTER TABLE DBO.INDEX_POLICY_TBL MODIFY C_NAME_2 VARCHAR2(128 CHAR);

create table DBO.INDEX_POLICY_TBL
(
ID NUMBER(10) NOT NULL PRIMARY KEY,
POLICY_ID NUMBER(10,0) default (-1) NOT NULL,
ALARM_COUNT NUMBER(10) default (0) NOT NULL
);

CREATE SEQUENCE DBO.INDEX_POLICY_TBL_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCACHE NOCYCLE;

create or replace
TRIGGER DBO.INDEX_POLICY_TBL_ID_IDENTITY BEFORE INSERT ON DBO.INDEX_POLICY_TBL
FOR EACH ROW
DECLARE
v_newVal NUMBER(10) := 0;
v_incval NUMBER(10) := 0;
BEGIN
IF INSERTING AND :new.ID IS NULL THEN
SELECT DBO.INDEX_POLICY_TBL_SEQ.NEXTVAL INTO v_newVal FROM DUAL;
-- If this is the first time this table have been inserted into (sequence == 1)
IF v_newVal = 1 THEN
--get the max indentity value from the table
SELECT NVL(max(ID),0) INTO v_newVal FROM DBO.INDEX_POLICY_TBL;
v_newVal := v_newVal + 1;
--set the sequence to that value
LOOP
EXIT WHEN v_incval>=v_newVal;
SELECT DBO.INDEX_POLICY_TBL_SEQ.nextval INTO v_incval FROM dual;
END LOOP;
END IF;
-- save this to emulate @@identity
sqlserver_utilities.identity := v_newVal;
-- assign the value from the sequence to emulate the identity column
:new.ID := v_newVal;
END IF;
END;

INSERT INTO DBO.INDEX_POLICY_TBL(POLICY_ID, ALARM_COUNT, C_NAME_1_NEW, C_NAME_2)
VALUES(100, 1, ‘A‘, ‘B‘);
INSERT INTO DBO.INDEX_POLICY_TBL(POLICY_ID, ALARM_COUNT, C_NAME_1_NEW, C_NAME_2)
VALUES(101, 2, ‘B‘, ‘C‘);
INSERT INTO DBO.INDEX_POLICY_TBL(POLICY_ID, ALARM_COUNT, C_NAME_1_NEW, C_NAME_2)
VALUES(102, 3, ‘C‘, ‘D‘);
COMMIT;

SELECT * FROM DBO.INDEX_POLICY_TBL;

drop TRIGGER DBO.INDEX_POLICY_TBL_ID_IDENTITY;
drop SEQUENCE DBO.INDEX_POLICY_TBL_SEQ;
drop table DBO.INDEX_POLICY_TBL;

时间: 2024-11-13 09:58:16

ORACLE常用脚本示例的相关文章

Oracle 常用脚本整理

一.统计表所占空间大小(表容量) /*一般情况下,表所占空间分为三部分:表数据.表索引.表blob字段数据*/--1 统计含(blob字段)的单表所占用的空间 SELECT TABLE_NAME, SUM(SIZE_MB)  FROM (SELECT A.SEGMENT_NAME AS TABLE_NAME,               SUM(BYTES) / 1024 / 1024 SIZE_MB          FROM USER_SEGMENTS A         GROUP BY

Oracle简单脚本示例

1.增加表 --修改日期:2014.09.21 --修改人:易小群 --修改内容:新增采购支付情况表 DECLARE VC_STR           VARCHAR2(5000); VN_COUNT         NUMBER; BEGIN --查看现有系统是否有BT_PRODUCT_MODEL表 SELECTCOUNT(*) INTO VN_COUNT FROM USER_TABLES WHERE TABLE_NAME ='BT_BUY_PAY'; --如果没有则新增表,如果有就不处理 I

Oracle常用脚本

1.查看每周生成的归档量 select logtime, count(*), round(sum(blocks * block_size) / 1024 / 1024) mbsize from (select trunc(first_time, 'dd') as logtime, a.BLOCKS, a.BLOCK_SIZE from v$archived_log a where a.DEST_ID = 1 and a.FIRST_TIME > trunc(sysdate - 7)) group

oracle 常用安装脚本以及步骤

oracle 常用脚本以及语句 一.oracle 安装10G 单机初始化环境: #!/bin/bash #关闭selinuxsed -i 's\SELINUX=enforcing\SELINUX=disabled\' /etc/selinux/configsetenforce 0 #关闭防火墙service iptables stopchkconfig iptables off #配置/etc/hosts文件 添加cat >> /etc/hosts<<EOF 172.16.0.19

shell脚本程序中的部分常用环境变量和参数变量的说明以及简单shell脚本示例

环境变量 $HOME 当前用户的家目录 $PATH 以冒号分隔的用来搜索命令的目录列表 $PS1 命令提示符,通常是$字符,但在bash中,可以使用一些更复杂的值.例如,字符串[\[email protected]\h\w]$就是一个流行的默认值,它给出用户名/机器名和当前的目录名,当然也包括一个$提示符. $PS2 二级提示符,用来表示后续的输入,通常是 > 字符. $IFS 输入域分隔符.当shell读取输入时,它给出用来分隔单词的一组字符,他们通常是空格,制表符和换行符. $0 shell

oracle exp/imp示例及使用问题整理

oracle常用的迁移工具有exp,imp,expdp,impdp,dblink等方式,实际过程中可以根据工具特点,数据库的具体环境情况,灵活采用.   exp/imp工具应方便简单使用,在数据量不大的情况下使用很频繁, 这个简要记录下使用中遇到的问题. 一.exp/imp版本不能往上兼容问题, 数据库的版本问题一定要搞清楚. 1. 低版本的exp/imp可以连接高版本的数据库, 高版本exp/imp不能连接低版本的数据库.   2. 高版本exp导出的dmp文件, 低版本imp命令无法导入.

oracle常用密令大全

1.create user username identified by password;//建用户名和密码oracle ,oracle 2.grant connect,resource,dba to username;//授权 grant connect,resource,dba,sysdba to username; 3.connect username/password//进入. 4.select table_name,column_name from user_tab_columns

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要

Data Base Oracle 常用命令

Data Base  Oracle 常用命令 1.登录:(不需要密码,属于管理员权限) conn /as sysdba 2.查看数据库存储位置: select name from v$datafile; 3.创建表空间: 语法:create tablespace 表空间名称 datafile '数据文件的路径' size 大小; 示例:create tablespace test_db datafile 'D:\ORACLE\ORADATA\ORCL\test_db.dbf' size 3000