1,"&"有时候不认,则改为"&"
2,慎用where pid!=3等用法,这样没有囊括is null的情况,要实现同样目的可where pid!=3 or pid is null
3,快速从另外一个表复制数据
insert into tablea (id,name) select id,name from tableb
4,查版本
select * from PRODUCT_COMPONENT_VERSION;或 select * from v$version;
5,nls==National Language Support 国际语言支持
6,PLSQL
HKEY_CURRENT_USER\Software\Allround Automations
HKEY_CURRENT_USER\Software\Microsoft\Security
7,查blob大小
select dbms_lob.getlength(blobfield) from wd_blob
8,改变表空间
alter table TB_USER move tablespace myspace;
如果被转移表空间的表含有索引, 表转移后索引变得不可用. 要删除旧索引,建立新索引
alter index user_name.index_name rebuild; 主键索引名与主键名相同
9,导入时表空间错误
导出dmp时的用户的默认表空间必须是表所在的表空间,这样导入时才不会出错。
如果dmp小,也可用UE打开直接修改表空间。
10,用select into 复制数据
insert into mis_group
(id, name)
select id, name from mis_group@dblink;
或
create table mis_group--需先删表
as (select * from mis_group@sjy)
11,中文字段按拼音排序:
select username from tab_name order by nlssort(username,'nls_sort=schinese_pinyin_m');
按偏旁部首:
select username from tab_name order by nlssort(username,'nls_sort=schinese_radical_m');
按笔画:
select username from tab_name order by nlssort(username,'nls_sort=schinese_stroke_m');
12,插入带单引号的字符
insert into t(a) values ('a'||chr(39)||'b' );
或insert into t(a) varlus ('a''b');
13,如果你连接到数据库后没有在取nextval之后再取currval,就会出现ORA-08002出错.
因此对每一个session来说,应该先用nextval,才可以取currval。
14
truncate table mapevent时,如果建了外键引用(外键所在那张表不一定有数据,有数据就会报另外一个错误了)
则报 ORA-02266:表中的唯一主键被启用的外部关键字引用
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
(外键所在那张表无数据时delete from table mapevent是可以执行的)
正确的步骤:
----------------
alter table mapevent disable primary key cascade;
truncate table mapevent;
alter table mapevent enable primary key;
---------------
15
查询某个表被哪些表引用
select *
from user_constraints t
where t.constraint_type = 'R'
and t.r_constraint_name = '该表的主键名';