`

oracle笔记

阅读更多
常用:

1.sysdate,rownum,user,rowid
2.dict, V$fixed_table, dict_columns

=====================================================================
一。重点
  创建表空间:
CREATE SMALLFILE TABLESPACE "XF" DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\xf.dbf' SIZE 1000M
AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

CREATE SMALLFILE TABLESPACE "CXXF" DATAFILE 'E:\oracle\product\10.2.0\oradata\orcl\cxxf.dbf' SIZE 2000M
AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

创建用户:
CREATE USER "XF" PROFILE "DEFAULT" IDENTIFIED BY "XF" DEFAULT TABLESPACE "XF" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "XF";
GRANT "RESOURCE" TO "XF";

CREATE USER "CXXF" PROFILE "DEFAULT" IDENTIFIED BY "CXXF" DEFAULT TABLESPACE "CXXF" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT "CONNECT" TO "CXXF";
GRANT "RESOURCE" TO "CXXF";

导入业务数据:
导入业务数据时注意检查触发器.
导入地图数据:
可以用ORACLE的备份文件导入, 也可以用 DeskPro 直接导入SDB数据

导出命令:exp system/password@orcl file=filename.dmp owner=(xf,cxxf)

导入命令 imp system/password@orcl file=filename.dmp fromuser=(xf,cxxf) touser=(xf,cxxf)
删除用户命令:drop user “name” cascade;

二。Oracle 修改表格字段

关键字: oracle 修改表格字段
给指定的表格添加一个字段

alter table 你的表  add (字段名  字段类型);

实际应用

alter table t_user add (t_create_date date);

//给一个表格的字段天加一默认的值

alter table t_user mofidy 你的字段 default 你的默认值

举例

alter table t_user mofidy t_create_date default sysdate;sysdate(为ORACLE默认的系统时间)



删除表的字段
alter table 你的表  drop 你的表字段
举例
alter table t_user drop t_create_date;
一次性删除表多个字段:
alter table table_name drop (column_name1,column_name2,...)

添加主键  constraint 翻译  约束

alter table 你的表 add constraint  约束名字  约束关键字  (你的列);

alter table t_user add constraint t_pk primary key(id);

添加外键约束 references 参考

alter table 主表 add constraint 外键约束名  约束关键字(关联列) references 参考的表(参考表的列);

alter table t_test add contraint t_fk foreign key (id) references t_user(id);

//删除外键

alter table t_test drop constraint 外键名

alter tabl t_test drop constaint t_fk;


alter table table_name add (col1 type,col2 type);

ALTER TABLE TABLE_AAA ADD (STOCKMAN NUMBER(18))//添加一列

COMMENT ON COLUMN TABLE_AAA.STOCKMAN IS '管理人员' //给列添加注释

ALTER TABLE TABLE_AAA ADD CONSTRAINT FK_TABLE_AAA_R_TABLE_BBB_S FOREIGN KEY (STOCKMAN) REFERENCES TABLE_BBB (ID)//给列添加外键

修改表字段名称:
alter table tablename rename column columnName_old to columnName_new;


---------------------------------------------------------------------

-----------。常用操作
  1.查看触发器
   SELECT * FROM All_Objects WHERE OBJECT_TYPE='TRIGGER'
  2.TNS配置实例,oracle的G:\oracle\product\10.2.0\db_1    \NETWORK\ADMIN\tnsnames.ora文件
     ORCL_101 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
   )
2.insert into a(smx,smy,waterresname) select b.smx,b.smy,b.name from b;    //b表的数据插入a表中
3.查看oracle对象源码:user_source
4.oracle表批量授权 从一個用戶到另外一個用戶
   将A用户下所有的表授权给B用户;
sqlplus A/A
select 'grant select,insert,update,delete on A.' || table_name || ' to B;' from user_tables;
然后选择上面出现的所有的语句,进入sysdba权限进行操作:
sqlplus "/as sysdba"             
然后执行上面的所有的语句就可以了;    
5.oracle 表结构操作:
  (1)修改表名字:alter table commandllist rename to commandlist 

6.调用oracle中的 Java source      
 
      SQL>   create   or   replace   and   compile   java   source   named   HelloWorld 
2   as 
3   public   class   HelloWorld   { 
4   public   static   void   db_run   (){ 
5   System.out.println( "Hello   World "); 
6   } 
7   } 
8   / 

Java   created. 

SQL>   create   or   replace   procedure   run_helloworld   
2   as   language   java 
3   name   'HelloWorld.db_run() '; 
4   / 

Procedure   created. 
SQL>   set   serveroutput   on   size   5000 
SQL>   call   dbms_java.set_output(5000)   ; 

Call   completed. 

SQL>   
SQL>   exec   run_helloworld   ; 
Hello   World 

PL/SQL   procedure   successfully   completed.
  


7.倒序取中间记录
  
      select   *   from   (select  v.*,   rownum   as   rid   from 
  (select * from vehiclelist where vehicleid='wj10-x7016' order by  vid desc) v   where   rownum<10)   where   rid   >   4
 或者:
   select *
  from (select a.*, rownum row_num
          from (select a.* from vehiclelist a where vehicleid='wj10-x7016'   order by vid desc) a)
 where row_num between 5 and 9
   

 
8.记录一下自己创建外部表的过程,因为中间出了一些小错误。
-- 1. 创建文件目录
SQL>create directory upload_dir as '/storagepool/upload';
Directorycreated.
-- 2. 创建外部表
SQL>create table analog_tmp_entrypage_ext_1(
 2  PROFILE_ID NUMBER(22),
 3  REPORT_TIME NUMBER(22),
 4  SESSION_ID NUMBER(22),
 5  URL VARCHAR2(2048)
 6  )
 7  organization external
 8  (type oracle_loader
 9  default directory upload_dir
10  access parameters
11  (records delimited by newline
12  fields terminated by X'05'
13  missing field values are null
14  (PROFILE_ID, REPORT_TIME, SESSION_ID, URL)
15  )
16  location('weblog.analog_tmp_entrypage_0.dat')
17  );
Tablecreated.
-- 3. 查询报错。因为外部表和sqlldr原理类似,加载外部数据时需要创建log文件,无法加载的数据,会创建bad文件。
--   这里出错的原因是:oracle对路径'/storagepool/upload'没有访问权限,无法在该路径下创建log文件和bad文件。
SQL>select * from analog_tmp_entrypage_ext_1 where rownum < 2;
select* from analog_tmp_entrypage_ext_1 where rownum < 2
*
ERRORat line 1:
ORA-29913:error in executing ODCIEXTTABLEOPEN callout
ORA-29400:data cartridge error
KUP-04063:unable to open log file ANALOG_TMP_ENTRYPAGE_EXT_1_12190.log
OSerror Permission denied
ORA-06512:at "SYS.ORACLE_LOADER", line 19
-- 4. 创建log文件和bad文件的路径,指向tmp分区。
SQL>create directory upload_log_dir as '/tmp/upload_log';
Directorycreated.
-- 5. 重建外部表,将log和bad指向新路径
SQL>drop table analog_tmp_entrypage_ext_1 purge;
Tabledropped.
SQL>create table analog_tmp_entrypage_ext_1(
 2  PROFILE_ID NUMBER(22),
 3  REPORT_TIME NUMBER(22),
 4  SESSION_ID NUMBER(22),
 5  URL VARCHAR2(2048)
 6  )
 7  organization external
 8  (type oracle_loader
 9  default directory upload_dir
10  access parameters
11  (records delimited by newline
12  badfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.bad'
13  logfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.log'
14  fields terminated by X'05'
15  missing field values are null
16  (PROFILE_ID, REPORT_TIME, SESSION_ID, URL)
17  )
18  location('weblog.analog_tmp_entrypage_0.dat')
19  );
Tablecreated.
-- 6. 重新查询,仍然报错。
SQL>select * from analog_tmp_entrypage_ext_1 where rownum < 2;
select* from analog_tmp_entrypage_ext_1 where rownum < 2
*
ERRORat line 1:
ORA-29913:error in executing ODCIEXTTABLEFETCH callout
# 7. 检查日志文件,原来是因为url默认长度为255,而该列长度为2048,存储了很多长度超过255的记录。
oracle@dw_nearline1:/tmp/upload_log>moreanalog_tmp_entrypage_ext_1_13056.log 
LOG file opened at 07/16/09 13:45:45
FieldDefinitions for table ANALOG_TMP_ENTRYPAGE_EXT_1
 Record format DELIMITED BY NEWLINE
 Data in file has same endianness as the platform
 Rows with all null fields are accepted
 Fields in Data Source: 
   PROFILE_ID                      CHAR (255)
     Terminated by "05"
     Trim whitespace same as SQL Loader
   REPORT_TIME                     CHAR (255)
     Terminated by "05"
     Trim whitespace same as SQL Loader
   SESSION_ID                      CHAR (255)
     Terminated by "05"
     Trim whitespace same as SQL Loader
   URL                            CHAR (255)
     Terminated by "05"
     Trim whitespace same as SQL Loader
KUP-04021:field formatting error for field URL
KUP-04026:field too long for datatype
KUP-04101:record 13 rejected in file /storagepool/upload/weblog.analog_tmp_entrypage_0.dat
KUP-04001:error opening file /storagepool/upload/ANALOG_TMP_ENTRYPAGE_EXT_1_13056.bad
KUP-04017:OS message: Permission denied
-- 8. 再次重建外部表,将列url长度设置为2048。
SQL>drop table analog_tmp_entrypage_ext_1 purge;
Tabledropped.
SQL>create table analog_tmp_entrypage_ext_1(
 2  PROFILE_ID NUMBER(22),
 3  REPORT_TIME NUMBER(22),
 4  SESSION_ID NUMBER(22),
 5  URL VARCHAR2(2048)
 6  )
 7  organization external
 8  (type oracle_loader
 9  default directory upload_dir
10  access parameters
11  (records delimited by newline
12  badfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.bad'
13  logfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.log'
14  fields terminated by X'05'
15  missing field values are null
16  (PROFILE_ID, REPORT_TIME, SESSION_ID, URLchar(2048))
17  )
18  location('weblog.analog_tmp_entrypage_0.dat')
19  );
Tablecreated.
SQL>select * from analog_tmp_entrypage_ext_1 where rownum < 2;
PROFILE_IDREPORT_TIME SESSION_ID URL
--------------------- --------------  -------------------------
        1    20070701     247355           /www.alibaba.com/trade/offer/detail
-- 9. 如果有多个文件,在location参数中加上即可
SQL>drop table analog_tmp_entrypage_ext_1 purge; 
Tabledropped.
etl@ALIDW>create table analog_tmp_entrypage_ext_1(
 2     PROFILE_ID NUMBER(22),
 3     REPORT_TIME NUMBER(22),
 4     SESSION_ID NUMBER(22),
 5     URL VARCHAR2(2048)
 6  )
 7  organization external(
 8     type oracle_loader
 9     default directory upload_dir
10     access parameters(
11             records delimited by newline
12             badfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.bad'
13             logfile upload_log_dir:'analog_tmp_entrypage_ext_1%A_%P.log'
14             fields terminated by X'05'
15             missing field values are null
16             (PROFILE_ID, REPORT_TIME, SESSION_ID, URL char(2048))
17     )
18     location(
19       'weblog.analog_tmp_entrypage_0.dat', 
20       'weblog.analog_tmp_entrypage_1.dat', 
21       'weblog.analog_tmp_entrypage_2.dat', 
22       'weblog.analog_tmp_entrypage_3.dat'
23     )
24  );
Tablecreated.



分享到:
评论

相关推荐

    Oracle笔记

    这个是我学习网上的视频做的oracle笔记,对于oracle一窍不通的菜鸟可能有用吧,大家有需要可以看看

    2011Oracle笔记(李兴华视屏教程笔记)

    标题“2011Oracle笔记(李兴华视屏教程笔记)”揭示了文档的用途,它是作为2011年李兴华Oracle教学视频课程的学习笔记。这种笔记通常包括了课程中的重点概念、Oracle数据库基础知识、实际操作案例以及配合视频教程的...

    史上最全的oracle笔记

    这篇史上最全的Oracle笔记将为你提供全面的学习指导。 一、数据库基础 数据库(DataBase)是存储数据的系统,Oracle数据库允许用户以表格的形式组织和管理数据。在Oracle中,数据主要以表的形式存在,表是数据库中...

    韩顺平oracle笔记(免费)

    ### 韩顺平Oracle笔记知识点详解 #### 一、Oracle认证及与其他数据库的比较 - **Oracle认证**:Oracle提供了多种级别的认证体系,包括OCA(Oracle Certified Associate)、OCP(Oracle Certified Professional)、...

    MLDN最经典的ORACLE笔记

    《MLDN最经典的ORACLE笔记》是李兴华老师倾力打造的一份全面而深入的Oracle学习资源,专为对数据库技术感兴趣的读者精心准备。Oracle作为全球广泛使用的数据库管理系统,其强大功能和复杂性使得深入理解和掌握Oracle...

    oracle笔记+资料.rar

    本资源“oracle笔记+资料.rar”包含了丰富的Oracle学习资料,适合不同水平的学习者,无论你是初学者还是资深DBA,都能从中受益。下面将详细解析其中可能涵盖的知识点。 1. **Oracle基础知识**:这部分内容可能会...

    oracle笔记创建和管理表

    oracle笔记创建和管理表,增加列,删除列,修改列,修改列名和数据类型和长度,修改表名等等操作,有代码案例!

    马士兵oracle笔记

    马士兵oracle笔记,浅显易懂。

    达内,tarena,oracle笔记,oraclePPT课件,达内oracle笔记

    在达内的Oracle笔记中,可能会详细讲解SELECT语句用于数据检索,INSERT、UPDATE、DELETE用于数据增删改,以及CREATE、ALTER、DROP用于数据库对象管理的语法和用法。 3. **数据库设计**:良好的数据库设计是确保系统...

    详细oracle 笔记

    oracle笔记!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    韩顺平老师oracle笔记

    根据给定的文件信息,以下是从“韩顺平老师oracle笔记”中提炼出的关键知识点,主要涉及Oracle数据库的基础概念、用户管理以及SQL*Plus的基本操作。 ### Oracle数据库基础 1. **Oracle数据库的角色与权限**: - *...

    Oracle 笔记 详解 资料 用例

    这份"Oracle笔记详解资料用例"涵盖了Oracle数据库的核心概念、安装配置、SQL语言、表和索引、存储结构、备份恢复、性能优化等多个方面,是学习和掌握Oracle数据库的宝贵资源。 首先,Oracle数据库的基础部分包括...

    oracle笔记html版本

    首先,Oracle笔记可能涵盖的基础概念包括数据库的结构,如表空间、段、区和块等,这些都是Oracle存储数据的基本单元。表空间是数据库中最大的逻辑存储单位,用于组织和存储数据文件。段是表空间内的逻辑存储结构,如...

    oracle笔记.docx

    在Oracle学习笔记中,我们关注的关键概念主要包括以下几个方面: 1. **数据缓冲区**:这是Oracle内存架构的重要组成部分,用于存储从磁盘数据文件中读取的数据。所有用户共享这个缓冲区,当数据被服务器进程读入后...

    oracle 笔记.doc

    在Oracle笔记中,我们首先看到关于安装和删除Oracle数据库的部分,特别是Oracle 9i的9.0.1.1和9.2.1.1版本。在这个过程中,有两位重要的超级用户:sys和system。sys类似于SQL Server的sa账户,拥有最高权限,而...

    oracle笔记.rar

    这份“Oracle笔记”包含了对Oracle数据库系统的基本学习资料,非常适合初学者入门。 一、Oracle数据库基础 Oracle数据库是由Oracle公司开发的,它采用SQL语言进行数据操作,并支持分布式数据库、实时交易处理、...

    韩顺平最新Oracle笔记及PPT

    《韩顺平最新Oracle笔记及PPT》是针对Oracle数据库技术的一套全面的学习资源,由知名IT讲师韩顺平提供。这些资料包含了2011年韩顺平的最新教学内容,适合对Oracle有兴趣或者需要提升Oracle技能的IT专业人士。 ...

    oracle笔记.pdf

    其中,“i”在Oracle8i中表示增加了对Internet的支持,Oracle9i则是Oracle8i的稳定版本,而Oracle10g是基于网格计算技术的版本,Oracle11g是10g的稳定版本,Oracle12C则是支持云计算概念的最新版本。在初学者阶段,...

Global site tag (gtag.js) - Google Analytics