Oracle 自增(auto increment) 或 标识字段的建立方法_Oracle应用

 下面给出ORACLE的一种实现方式,要分2步走:
1. 建立 SEQUENCE CREATE [ OR REPLACE ] SEQUENCE sequence_identity START WITH initial seed INCREMENT BY step MAXVALUE upper bound [NOMAXVALUE] NOCYCLE [empty]
2. 建立 TRIGGER CREATE [ OR REPLACE ] TRIGGER trigger_identity BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT sequence_identity.NEXTVAL INTO :new.column_name FROM DUAL; END;
说明:
为了尽量避免 sequence 同名冲突, sequence_identity 命名方式,建议采取
SEQ_UserName_TableName_SequenceName 的形式
trigger_identity 的命名方式,同上。

时间: 2024-09-24 20:10:30

Oracle 自增(auto increment) 或 标识字段的建立方法_Oracle应用的相关文章

Oracle 插入超4000字节的CLOB字段的处理方法_oracle

在通过拼组sql语句来实现数据插入的应用中,我们很有可能会遇到需要插入大型数据的情况,例如,在oracle中需要插入字节数超过4000的字段内容时,我们如果通过简单的拼组sql语句来实现插入,显然就会出现问题,而在sql server中却没有这个限制,个人尝试了26w个字符的sql语句在sql server2005中执行,依旧可以插入数据,但是在oracle中插入超过4000个字符的内容则会报异常. 下面就此问题的解决办法,做一下小结: 我们可以通过创建单独的OracleCommand来进行指定

c#利用webservice和wcf对oracle数据库增删改查,并判断两种方法的效率

问题描述 c#利用webservice和wcf对oracle数据库增删改查,并判断两种方法的效率 初学者,以前没有接触过webservice和wcf.现在遇到一个这样的项目,请大家给予帮助,提供源码,思路都行.当然,最好是代码了,亲,帮一个忙呗~ 解决方案 ws相对简单,WCF就是一把大牛刀,虽然很好,但是你要是杀鸡就得不偿失了.你是了解MVC的话,通信可以试试WebAPI.例子网上到处都是的

oracle 数据按主键删除慢问题的解决方法_oracle

问题描述: 根据表主键id删除一条数据,在PL/SQL上执行commit后执行时间都大于5秒.!!! 问题分析: 需求是删除一个主表A,另有两个附表建有此表的主键ID的外键.删除A表的数据级联删除另两个表的关联数据.增删改查使用hibernate实现. 一开始一直以为是hibernate的内部处理上有关联操作导致的删除和更新数据缓慢.所以将原先使用hibernate的saveOrupdate方法,改查jdbc的 sql语句来处理update和delete数据操作.但是依然没效果!!! 怀疑数据库

oracle date 类型字段的处理方法_oracle

(1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月-03' (2)转换字符串为日期 使用ORACLE内部函数to_date() to_date()函数的参数是to_char()函数参数的反转. to_date(string_value , date_format) 变量定义如下: string_value :为字符串直接值(字符串本身).字符串列(

oracle 使用sql获取数据库表、表的字段的多种方法_oracle

--第一种方法: 查询dba_tab_columns 复制代码 代码如下: select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from dba_tab_columns where table_name =upper('表名') order by COLUMN_NAME --这种方法需要有DBA权限 --第二种方法: 查询user_tab_cols select COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_cols

oracle关键字作为字段名使用方法_oracle

有时我们在定义字段名及别名时所用名与oracle关键字同名,这时该如何处理呢? 其实很简单,只要在此关键字加上"",如"group" 看下面的例子: 复制代码 代码如下: SQL> DROP TABLE k; Table dropped -- 建立表K,字段名为UID(oracle关键字) SQL> CREATE TABLE k(UID INT); CREATE TABLE k(UID INT) ORA-00904: : invalid IDENTIFI

Oracle ORA-22908(NULL表值的参考)异常分析与解决方法_oracle

场景如下: --创建类型(type)create or replace type list_obj is table of number;--创建表结构create table test( name varchar2(30) primary key check(regexp_like(name,'^([a-z]|[0-9]|_)+$')), id number not null, version_list list_obj) nested table version_list store as

在Oracle数据库中同时更新两张表的简单方法_oracle

以前只会写一些简单的updaet语句,比如updae table set c1='XXX' 之类的 今天遇到一个数据订正的问题,项目背景如下,有个表A,有两个字段a1,a2还有一个关联表B,其中也有两个字段,b1和b2.其中a2和b2是关联的,想把A中的字段a1更新成B中的b1 理论上sql应该挺好写的,但是在oralce中实现了半天一直报语法错误.而且确实还有些小小细节没有注意到. 首先上测试数据 表1,ZZ_TEST1 表2,ZZ_TEST2 要把表一的text更新成表二的text1值,对应

oracle修改SGA后无法启动问题分析及解决方法_oracle

1.若数据库机器上没有装Console或者没有使用Console配置网络服务名. 则可以通过命令sqlplus sys/sys as sysdba 登录到服务器空闲进程.看第四步. 2.如果配置了网络服务名,则 在路径D:\oracle\product\10.2.0\db_1\network\admin\listener.o ra下 找到listener.ora. 修改为: 复制代码 代码如下: # listener.ora Network Configuration File: D:\orac