论坛首页 综合技术论坛

oracle 基础

浏览 1210 次
锁定老帖子 主题:oracle 基础
该帖已经被评为隐藏帖
作者 正文
   发表时间:2008-08-14   最后修改:2011-01-28
oracle10 行转列  函数 WMSYS.WM_CONCAT(name)

外键
create table person(
       person_id number primary key,
       age number(2),
       firstname varchar(10),
       lastname varchar(10),
       event_id number
)

alter table person add (constraint peron_pk foreign key(event_id) references events(event_id))



nvl函数

  nvl(a,b)当a为null时,取b值


查看表结构
SELECT column_name, data_type FROM user_tab_columns WHERE table_name='DEPT';



表空间

create tablespace LSFC
datafile 'F:\oracle10\product\10.2.0\oradata\oracle10\LSFC01.dbf' size 500M
autoextend on next 100M maxsize unlimited logging
extent management local autoallocate
segment space management auto;

alter tablespace users add datafile 'F:\ORACLE10\PRODUCT\10.2.0\ORADATA\ORACLE10\USERS05.DBF' size 400m;

DROP TABLESPACE LSFC INCLUDING CONTENTS AND DATAFILES;

ora-12541 tns: 无监听程序
HOST = localhost  换成ip地址

导入导出

imp \"sys/manager@oracle10  as sysdba\" file=name.dmp fromuser=user touser=user

exp user/password@oracle10 file=name.dmp full=y



递归查询 
创建示例表:
CREATE TABLE TBL_TEST
(
  ID    NUMBER,
  NAME  VARCHAR2(100 BYTE),
  PID   NUMBER                                  DEFAULT 0
);

插入测试数据:
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('3','20','0');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('4','12','1');
INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('5','121','2');

从Root往树末梢递归
select * from TBL_TEST
start with id=1
connect by prior id = pid

从末梢往树ROOT递归
select * from TBL_TEST
start with id=5
connect by prior pid = id


一、语法:  
    TRANSLATE(string,from_str,to_str)  
  二、目的  
      返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE   是   REPLACE   所提供的功能的一个超集。如果   from_str   比   to_str   长,那么在   from_str   中而不在   to_str   中的额外字符将从   string   中被删除,因为它们没有相应的替换字符。to_str   不能为空。Oracle   将空字符串解释为   NULL,并且如果TRANSLATE   中的任何参数为NULL,那么结果也是   NULL。  
  三、允许使用的位置  
      过程性语句和SQL语句。  
  四、示例  
    SELECT   TRANSLATE('abcdefghij','abcdef','123456')   FROM   dual;  
    TRANSLATE   (  
    --------------  
    123456ghij  
   
    SELECT   TRANSLATE('abcdefghij','abcdefghij','123456')   FROM   dual;  
    TRANSL  
    ----------  
    123456  


服务器端字符集
select name,VALUE  from v_$parameter t where name = 'nls_language';
select userenv('language') from dual;
SIMPLIFIED CHINESE_CHINA.AL32UTF8

sqlplus / as sysdba

SQL>sqlplus
SQL>sys/password as sysdba

客户端字符集
NLS_LANG
AMERICAN_AMERICA.UTF8
SIMPLIFIED CHINESE_CHINA.ZHS16GBK

外键失效
ALTER TABLE REC_DEMAND
DISABLE CONSTRAINT FK_REC_DEMA_REC_DM_TY_REC_DM_T;
外键生效
ALTER TABLE REC_DEMAND ENABLE CONSTRAINT FK_REC_DEMA_REC_DM_TY_REC_DM_T;


Oracle:查找表的主键,外键,唯一性约束,索引
[url]http://www.cnblogs.com/chuncn/archive/2009/04/13/1434387.html/url]
1、查找表的所有索引(包括索引名,类型,构成列):

select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表

2、查找表的主键(包括名称,构成列):

select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表

3、查找表的唯一性约束(包括名称,构成列):

select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table_name = 要查询的表

4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表

查询外键约束的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键名称

查询引用表的键的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名

5、查询表的所有列及其属性

select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics