oracle sql自动递增
一、删除列
ALTER TABLE AA DROP COLUMN DEP;
适用于小表-----数据量小的时候;
2、ALTER TABLE AA SET UNUSED("DEP") CASCADE CONSTRAINTS;
然后在负载小的时候,删除
ALTER TABLE AA DROP UNUSED COLUMNS;
二、添加列
先加一新字段再赋值:
alter table table_name add mmm varchar2(10);
update table_name set mmm=** ;
三、设置字段值自动增加
insert into t_address (addressname) (select vcname from busstop)
create sequence seq_id_test_increment --序列
increment by 1 start with 1 maxvalue 9999999;
create or replace trigger insert_test_increment --触发器
before insert on t_address --t_address 表
referencing
new as new
old as old
for each row
begin
select seq_id_test_increment.nextval into :new.addressid from dual; --addressid字段
end;
相关文档:
SQLServer和Oracle的常用函数对比
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) valu ......
只是sqlserver 提供的远程数据访问函数; 在本地sqlserver 中取外部数据源数据时候可用;
对连接本地 oracle 操作远程 oracle 不能使用; 测试: pl/sql 中使用:
select * from openrowset(................); 无效!!!!!!!!!!!!!!
在oracle 中需要访问远程数据,需要建立一连接远程oracle 的 dblink ;
再用如下方 ......
我在把oracle数据导入sqlserver中时,发现在oracle中字段定义为唯一索引时,不同记录的此字段如果为空不被认为是重复的,但在sqlserver中如果此字段为唯一索引字段,不允许有2个以上的空值。郁闷。所以只好将sqlserver中的唯一索引字段手工修改为几个非空的值,但这样程序肯定要进行修改了。需要在程序中为此字段设置不重复 ......
一 在Oracle中连接数据库
public class Test1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
&nbs ......
先构造一个表:
create table emp2(
id number(2),
name varchar(10),
currdate date,
action varchar2(1)
)
创建触发器:
create or replace trigger d_i_u_emp2
after insert or update or delete on mysort
begin
if inserting then
insert into emp2 values (12,'dog',sysdate,'i');
elsif deleting then ......