小白初入oracle的一些问题

1、PL/SQL Developer及其简单介绍

2、创建基础表

3、导入text文件

4、其他

该文操作都在win10系统下。该文的oracle及pl/sql版本:

 

在sql窗口,输入语句:SELECT BANNER FROM V$VERSION; 执行

1、PL/SQL Developer及其简单介绍

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.2 关于pl/sql界面,

(英文界面的可以去搜索汉化方法,也可以找下中文界面对照一下,基本不好找)。简要说下英文界面的,

1、新建文件(new)下有很多可选项,很多的 xx windows;我基本只用了sql windows,偶尔用下command windows;其它用到再补充;

2、该界面分三部分,左、中、右;左边从上到下大致四部分();只要知道后续创建的表都在中间的。。。即可,建表、找表都会涉及到这里,中间是编辑窗口,三个选项(以新建了sql windows为例:sql、output、statisties),可以打开多个windows,关于sql的建表、查询等等都只在sql下编辑即可。右边,还没关注过(好像是中间的操作历史记录等等)

3、一些操作:

(1)个人偏好设置(即设置)在configure-preference下,oracle大小写不敏感,关键字大小写也在这里设置,建议统一都用大写。

(2)sql窗口下照sql的编辑方式即可,每句的句末分号、或者换行斜杠、commit提交都没涉及(写多段应该是有涉及),我都是选定一个语句段、运行(绿色三角就是执行、运行命令execute)

 (3)oracle不同版本有些差异,和mysql等的sql语句也有少部分的差异,比如数据类型,自行google就知道了,另外明个字段必须限定数据类型,并且varchar或varchar2必须限定字符数,number可有可无,int禁止。

  (4)表名或字段名字符数都有限制,一般不超过30,数据类型的字符数也有上限,比如varchar的最大值是4000,即设计表过程超过上限会报错。而oracle的报错基本很操蛋,只是告诉你有错,没具体说明或支出哪里,一般是在红线的上下句,有些错误有编号可以google。

 

2、创建基础表

new---SQL WINDOW : 在中间sql选项下书写sql语句即可:

create table 表名 

(字段名1 空格 数据类型,

字段名2 空格 数据类型,

最后一个字段(这里不需要逗号)

)

当然,建一两个表,几个字段的任务还好说,大型任务都是上百个表,多个字段(给你个excel表,数据库设计表),本人第一次接触的数据是90个左右的表,每个表的字段有多有少,多的将近30个。所以,写着写着就不对劲了,本人其他语言脚本不行,但python还会点,赶紧打开pycharm写个程序,需要的可以下载参考。

可视化建表这里跳过,可视化建表后下边有个view sql可查看相应sql语句,可来回切换

3、pl/sql 导入text、csv文件的一些问题

(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的等等,没试过)。批量操作的都没有,本人也正在研究中

4、其他

近期有在使用的话,有新情况会持续更新。批量化处理的python代码在本博客里可以找到,欢迎下载交流!

对本文感兴趣、或者oracle、大数据、人工智能感兴趣的伙伴希望可以一起交流讨论,希望有该领域的一些前辈指导、指引

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PythonJavaC++go

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值