首页 > 数据库 >Oracle操作总结

Oracle操作总结

时间:2023-04-07 16:48:34浏览次数:58  
标签:总结 name sqlldr tablename DB db -- Oracle 操作

Oracle操作总结

目录

参考文档:https://blog.csdn.net/dingguanyi/article/details/82259685

一、Oracle表操作

1.建表

-- Create table
create table DB.TABLENAME
(
  DATA_DATE    VARCHAR2(8 CHAR)
  COL1         VARCHAR2(100 CHAR) not null,
  COL2         VARCHAR2(200 CHAR)
)
partition by list (DATA_DATE)
(
  partition P_INIT values ('20000101')
    tablespace DB_DATA
    pctfree 10
    initrans 1
    maxtrans 255,
  partition P_20191013 values ('20191013')
    tablespace DB_DATA
    pctfree 10
    initrans 1
    maxtrans 255
    storage
    (
      initial 8M
      next 1M
      minextents 1
      maxextents unlimited
    )
);

-- Add comments to the table 
comment on table DB.TABLENAME is '表名';

-- Add comments to the columns 
comment on column DB.TABLENAME.COL1 is '字段1';
comment on column DB.TABLENAME.COL2 is '字段2';

-- Create/Recreate indexes 
create index IDX2_DB_TABLENAME on DB.TABLENAME (COL1)
  tablespace DB_DATA
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

2.修改表名

--将student修改成STUDENTS
ALTER TABLE STUDENT RENAME TO STUDENTS;

--将students修改成student
ALTER TABLE STUDENTS RENAME TO STUDENT;

3.修改字段名

--将字段name修改成names
ALTER TABLE STUDENT RENAME COLUMN NAME TO NAMES;

4.修改数据类型

--将字段sex修改成char类型
ALTER TABLE STUDENT MODIFY SEX CHAR(3);

5.增加字段

ALTER TABLE STUDENT ADD AGE NUMBER;

6.删除字段

ALTER TABLE STUDENT DROP COLUMN AGE;

7.多表关联更新

update t1 
   set t1.money = (select t2.money 
                     from t2 
                    where t2.name = t1.name
                   )
where exists (select 1 from t2 where t2.name = t1.name);
merge into t1
     using (select t2.name,t2.money from t2) t
        on (t.name = t1.name)
when matched then 
update set t1.money = t.money;

二、sqlldr导入数据到Oracle库中

1.sqlldr语句

文件名:/sqlldr_test/db.tablename.ctl

OPTIONS (skip=1,rows=20000)
load data     
CHARACTERSET AL32UTF8
infile      "/u01/data/db.tablename.csv"     
badfile     "/u01/data/db.tablename.bad"
discardfile "/u01/data/db.tablename.disc" 
TRUNCATE into table db.tablename
Fields terminated by ","
Optionally enclosed by '"'
TRAILING NULLCOLS 
(
 col1
,col2
,col3
)

代码说明:

代码 说明
OPTIONS (skip=1,rows=10000) sqlldr 的内容可以写在cotrol文件 load_data的前面,此处跳过前1行,每次提交10000行
load data 加载数据
CHARACTERSET AL32UTF8 字符集编码(如果出现乱码要考虑一下)
infile 加载的文件,* 表示本文件
badfile 错误的数据所放的文件(校验错误)
discardfile 丢弃的数据放的路径(记录的格式错误或过滤行)
TRUNCATE into table db.tablename 先TRUNCATE db.tablename再将记录插入表
Fields terminated by "," 多个字段间用“,”隔开
Optionally enclosed by '"' 单个字段用“"”开始,“"”开始结束
TRAILING NULLCOLS 对于值为空的字段允许为空

2.执行语句

sqlldr userid=username/password control=/sqlldr_test/db.tablename.ctl log=/sqlldr_test/db.tablename.ctl.log

标签:总结,name,sqlldr,tablename,DB,db,--,Oracle,操作
From: https://www.cnblogs.com/haitaoli/p/17296651.html

相关文章

  • Oracle中的单行函数
    一.定义单行函数为查询的表或视图的每一行返回一个结果行。这些函数可以出现在可以出现在SELECT列中,WHERE子句,STARTWITH和CONNECTBY子句以及HAVING子句中。单行函数大致分为:数值函数,字符函数,日期时间函数,转换函数,和通用函数。二.数值函数数值函数接受数值输......
  • 表相关操作2-完整约束、表之间关系
    目录六、表完整性约束1.介绍2.unsigned、zerofill3.notnull4.default5.unique6.primarykey7.auto_increment8.foreignkey表与表之间建关系外键字段建立一对多关系级联更新,级联删除多对多的表关系一对一关系七、修改表ALTERTABLE六、表完整性约束1.介绍约束条件就是在数据......
  • OpenCV图像像素读写操作
    常用类型介绍uchar类型typedefunsigneduint;typedefsignedcharschar;typedefunsignedcharuchar;typedefunsignedshortushort;Vec系列Vec+数字+字母:C++STLvector容器类似数字:Vec的长度字母:类型b:uchars:shortw:ushorti:intf:floatd:doubletypedefVec<uch......
  • h5 - pc 使用 pdf.js 预览pdf -配合文件流实现 - 遇到的坑总结
    1.pdf.js下载看我这篇随笔【h5-使用pdf.js预览pdf-岑惜-博客园(cnblogs.com)】2.html调用页面的局部代码<body><divstyle="height:100vh;margin:0auto"><iframestyle="height:100%;width:100%;border:none"id="fvic"src="&......
  • python操作git
    安装模块pip3installgitpython#coding:utf-8importosfromgit.repoimportRepofromgit.repo.funimportis_git_dir#pip3installgitpythonclassGitRepository(object):"""git仓库管理"""def__init__(self,......
  • django记录基础操作日志
    1.新增middleware.py中间件:需要在setting.py注册classLoggingMiddleware:"""日志记录模块:操作用户、操作ip、请求路径、请求方式、请求时间"""def__init__(self,get_response):self.get_response=get_responsedef__call__(self,......
  • python+playwright 学习-50 pytest-playwright 多账号操作解决方案
    前言pytest-playwright插件可以让我们快速编写pytest格式的测试用例,它提供了一个内置的page对象,可以直接打开页面操作。但是有时候我们需要2个账号是操作业务流程,比如A账号创建了一个任务,需要用到B账号去操作审批动作等。如果需要2个账号同时登录,可以使用context上下文,它可......
  • 安装wsl的必备操作——开启CPU虚拟化——WslRegisterDistribution failed with error_
    参考:https://www.cnblogs.com/smdtxz/p/16837946.htmlhttps://www.cnblogs.com/wenonly/p/17206040.htmlhttps://blog.csdn.net/qq_41460654/article/details/118026986  ======================================================  因为实验室需要炼丹,而炼丹要用ubun......
  • Oracle JDK 和 OpenJDK 有什么区别?
    可能在看这个问题之前很多人和我一样并没有接触和使用过OpenJDK。那么OracleJDK和OpenJDK之间是否存在重大差异?下面我通过收集到的一些资料,为你解答这个被很多人忽视的问题。对于Java7,没什么关键的地方。OpenJDK项目主要基于Sun捐赠的HotSpot源代码。此外,OpenJDK......
  • 【Git分布式版本控制工具-补充&新增IDEA操作】
    本文纲要一、Git常用命令1、Git全局设置【补充】2、获取Git仓库3、本地仓库操作4、远程仓库操作5、分支操作6、标签操作【补充】二、在IDEA中使用Git【新增】1、在IDEA中配置Git2、Git仓库操作3、.gitignore文件4、本地仓库操作5、远程仓库操作6、分支操作一、Git常用......