赞
踩
在sql窗口,输入语句:SELECT BANNER FROM V$VERSION; 执行
1.1 数据库分No-SQL(不仅仅是关系型not only sql,比如Hbase等)和SQL关系型数据库,比如oracle、mysql、早期的access。pl/sql就是sql语言的一种可视化操作界面,就好比我们编辑文本的可视化界面有文本文档、win自带的一种(啥名忘了)、notepad(除文档编辑还可以做代码编写)、ultraedit(基本编辑外可以文档比对等等操作);好比python的可视化编辑器(自带的idl、pycharm、idea、anconda、jupyter、eclipse)。
oracle及pl/sql的安装、连接及登录这里不做介绍,有需要的自行google。
(英文界面的可以去搜索汉化方法,也可以找下中文界面对照一下,基本不好找)。简要说下英文界面的,
(1)个人偏好设置(即设置)在configure-preference下,oracle大小写不敏感,关键字大小写也在这里设置,建议统一都用大写。
(2)sql窗口下照sql的编辑方式即可,每句的句末分号、或者换行斜杠、commit提交都没涉及(写多段应该是有涉及),我都是选定一个语句段、运行(绿色三角就是执行、运行命令execute)
(3)oracle不同版本有些差异,和mysql等的sql语句也有少部分的差异,比如数据类型,自行google就知道了,另外明个字段必须限定数据类型,并且varchar或varchar2必须限定字符数,number可有可无,int禁止。
(4)表名或字段名字符数都有限制,一般不超过30,数据类型的字符数也有上限,比如varchar的最大值是4000,即设计表过程超过上限会报错。而oracle的报错基本很操蛋,只是告诉你有错,没具体说明或支出哪里,一般是在红线的上下句,有些错误有编号可以google。
create table 表名
(字段名1 空格 数据类型,
字段名2 空格 数据类型,
。
。
最后一个字段(这里不需要逗号)
)
可视化建表这里跳过,可视化建表后下边有个view sql可查看相应sql语句,可来回切换
(1)网上的导入方法大致三种,一种是alter 。。。for update ,解锁,复制粘贴;一种写脚本doc命令;还有一种即pl/sql自带的,在tools下的text import(小白非常适用,本文的问题也都在该情况下)
(2)tools-textimport ;一个是选择源数据(csv或txt文件),选完后切换选项卡,选择对应的表。表和原数据里的字段需要一一对应,当然,允许表里有字段,而数据里面没有该字段。下图是data_to_oracle 界面,即选择数据库中对应表的过程,上面图标分别为,打开csv(txt)文件,粘贴、清空新建、。。。根据源数据字段新建数据库(倒2,即后述的第二种先导再可视化建表的过程)
(3)编码问题,如果不修改数据库的编码,要求导入的文件是gbk格式,修改方式是打开-另存为-选择ansi编码-保存。文本文档在13000m左右的时候就打不开了,此时可以用ultraedit操作。另外,编写脚本等批量方法还在更新中
(4)导入的一些问题:数据入库有两种,先建基础表,再导数据,选择表和数据字段一一对应,这种要求基础表的字段完整,缺少的话就比较麻烦,要来回修改,在sql中进行增加字段操作;另一种是导入的时候,选择创建表,就会以该数据源的字段构建一个数据表(可视化建表操作),选择各个字段的数据类型,定义该表表名,应用apply,切回来,选择该表,导入。
(5)选择源数据时,在预览界面都挤在一个字段里?此时一般是pl/sql卡机了,同过中间的可选项点几下就好了,一般就三个,分隔符、字段个数、第一行为字段名
(6)导入过程中,涉及到时间的字段的creat sql语句都要删除,另外,建议建初表时都设成varchar2(4000),后期在根据需要进行修改,要不然导入过程有很多坑,一个是数据类型,一个是字符数限制。窗口切换频繁执行、应用等等,会导致资源卡死,ora-00054问题解决:在command window窗口输入:
SELECT SESSION_ID FROM V$LOCKED_OBJECT; 执行
SELECT SID, SERIAL#, username, osuser from v$session where sid= xxx; (注:xxx为上一句的执行结果数值),执行
ALTER SYSTEM KILL SESSION 'XXX,YYY';(注:xxx、yyy分别是上一句执行结果的前两个数值,且这里必须是单引号,不能是双引号),运行。最后显示system altered。即资源已解锁,可继续操作。
另外,command 窗口有点类似dos命令窗口,上下方向键是显示最近的键入记录。当需要频繁更新时,第一次得到sid值后,第二次只要保持sid值不变,serial值加2即可(即不需要从头开始三条命令,直接方向键向上,修改“xxx,yyy”中的yyy值即可)。
(7)超长文本的导入(clob、blob)(ora-01704问题)。网上给的都是逐条入库方法,一种是可视化打开,对应空格复制粘贴,一种是把超长文本分段、拼接,google一下都有(这种写脚本的有好几种,有从底层的,有java的等等,没试过)。批量操作的都没有,本人也正在研究中
近期有在使用的话,有新情况会持续更新。批量化处理的python代码在本博客里可以找到,欢迎下载交流!
对本文感兴趣、或者oracle、大数据、人工智能感兴趣的伙伴希望可以一起交流讨论,希望有该领域的一些前辈指导、指引
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。