1. 聚能聊>
  2. 话题详情

一起聊编程语言之与哲人(Oracle)对话的PL/SQL

PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。在甲骨文数据库管理方面,PL/SQL是对结构化查询语言(SQL)的过程语言扩展。PL/SQL的目的是联合数据库语言和过程语言。
timg1
PL/SQL的优点如下:
PL/SQL是一种高性能的基于事务处理的语言,能运行在任何ORACLE环境中,支持所有数据处理命令。通过使用PL/SQL程序单元处理SQL的数据定义和数据控制元素。
PL/SQL支持所有SQL数据类型和所有SQL函数,同时支持所有ORACLE对象类型
PL/SQL块可以被命名和存储在ORACLE服务器中,同时也能被其他的PL/SQL程序或SQL命令调用,任何客户/服务器工具都能访问PL/SQL程序,具有很好的可重用性。
可以使用ORACLE数据工具管理存储在服务器中的PL/SQL程序的安全性。可以授权或撤销数据库其他用户访问PL/SQL程序的能力。
PL/SQL代码可以使用任何ASCII文本编辑器编写,所以对任何ORACLE能够运行的操作系统都是非常便利的
对于SQL,ORACLE必须在同一时间处理每一条SQL语句,在网络环境下这就意味作每一个独立的调用都必须被oracle服务器处理,这就占用大量的服务器时间,同时导致网络拥挤。而PL/SQL是以整个语句块发给服务器,这就降低了网络拥挤。

PL/SQL最大的缺点就是将逻辑集中在数据库进行处理,占用了宝贵的数据库计算资源,造成系统并发较低,限制了系统扩展。

我从99年左右开始使用SQL,后续逐渐开始接触及使用PL/SQL等各种存储进程(Stored procedure)。在做C/S架构分布式系统的时候,因为PL/SQL等存储进程具备效率高,调试方便,更新容易(不需要更新客户端)等优点,几乎所有复杂点的逻辑都是使用PL/SQL来实现的。因为面对业务的分布式系统,数据库压力相对不大,所以这么做还没有问题。不过等到转到B/S架构后就碰到了大麻烦,大集中的B/S平台,数据库资源是最宝贵的,继续大量使用PL/SQL的话,系统的并发根本就提不上来,于是就将所有的逻辑从数据库(PL/SQL)转到了中间层,后续又进行了服务化等进一步的拆分。现在我也还继续使用PL/SQL,不过主要是用在日终处理、ETL等逻辑比较复杂又不需要大并发的场合。

大家一起聊一聊:
你是什么时候在什么情况下开始接触PL/SQL的?
你现在主要是用PL/SQL来做什么工作?
PL/SQL有什么特别让你喜欢或者需要改进的地方?
你是否看好PL/SQL乃至Oracle数据库在未来的发展?

参与话题

奖品区域 活动规则 已 结束

10个回答

0

乌镇情怀 复制链接去分享

你是什么时候在什么情况下开始接触PL/SQL的?
正式接触是工作的时候。
你现在主要是用PL/SQL来做什么工作?
不用关系型数据库了。
PL/SQL有什么特别让你喜欢或者需要改进的地方?
只要是sql都不喜欢,
你是否看好PL/SQL乃至Oracle数据库在未来的发展?
说实话写SQL很费脑子,相信很多人都跟我一样讨厌写SQL。
设计数据库还要小心翼翼的,一旦设计错了后面再改就很费劲
既然这样为什么不用NOSQL呢?这样看来关系型数据库未来不太乐观。

cjsoldier 回复

干嘛学人家讲划。

aoteman675 回复

哈哈哈,一模一样

沙漠的热情 回复

记得有人这样说:
谷歌百度易做程序员,
复制粘贴难称工程师。

微wx笑 回复

这排序规则评论的权重太高了。

cjsoldier 回复
回复@微wx笑:

嗯。我也觉得。应该让点赞多的排在前面。

评论
0

浮生递归 复制链接去分享

你是什么时候在什么情况下开始接触PL/SQL的?
我是在2018年2月26日开始接触PL/SQL,没错,就是看了你这篇文章后,看着还挺不错的。

你现在主要是用PL/SQL来做什么工作?
做C端的软件开发啊,根据PL/SQL的优点来看,就适合做C端的系统了吧。B端其实也可以,只是会比较局限。比如那些对数据库资源消耗很少的B/S系统,就可以用PL/SQL来开发。

PL/SQL有什么特别让你喜欢或者需要改进的地方?
不用更新客户端这点很好。我现在很多B/S系统都没采用.NET来开发,而是用ASP和PHP来开发的主要原因也是因为维护方便。不需要指定的IDE环境。记事本就行,特酸爽。

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
PL/SQL见到不多,Oracle数据库就不用多了,市场份额摆在那里。至于将来,毕竟是巨头,应该不会差到哪里去吧。不过我还是MSSQLMYSQLACCESS用的最多。

微wx笑 回复

现在还用ASP呢?.NET也可以直接部署源码的,一样记事本可以改。

浮生递归 回复
回复@微wx笑:

.net跟ASP比,一个很大的优势,就是编译后发布,安全性大增。ASP服务器被攻破,就什么都暴露了,但是.NET如果程序设计优秀,就算进了服务器,拿到数据库,因为无法查看编译过的文件内容,也就无法解读数据结构

微wx笑 回复

安全上基本差不多的,.net和Java反编译都太简单了,混淆也意义不大。

浮生递归 回复
回复@微wx笑:

直接打开查看和反编译,技术要求直接上了一个等级。比如直接看我会,要我反编译,就不会了。

微wx笑 回复

没有工具,我也抓瞎。

评论
1

微wx笑 复制链接去分享

你是什么时候在什么情况下开始接触PL/SQL的?
大概10到12年的时候吧,
公司中标一个项目甲方要求用Oracle。

你现在主要是用PL/SQL来做什么工作?
现在有框架,有反向工程工具,SQL都很少写了。

PL/SQL有什么特别让你喜欢或者需要改进的地方?
布吉岛

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
大家都去IOE了,不看好。

1

沙漠的热情 复制链接去分享

你是什么时候在什么情况下开始接触PL/SQL的?
PL/SQL是管理oracle数据库的好用的工具,离了它,oracle还真是高高在上不接地气的哲人!

你现在主要是用PL/SQL来做什么工作?
oracle数据库的管理维护喽。抱歉,我读书少所知有限。

PL/SQL有什么特别让你喜欢或者需要改进的地方?
太久不用了,真说不上来。
工具而已,当用则用不用则弃,云计算的兴起,oracle的根基也不那么稳固了,亦有了替代方案,无需迷恋PL/SQL。

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
还好一般般吧,一段时间内oracle还能稳健的发展,长远看终将衰落。

0

徐环 复制链接去分享

拍手歌

0

小可同学 复制链接去分享

来个话费,尝尝鲜呀~
大家一起聊一聊:
1、你是什么时候在什么情况下开始接触PL/SQL的?
我把,在16年年底去电信实习,我本来学的是java但是!!面试的也是java!但是年底综资项目上线,三年的项目呀!那会DBA需要人呀!!我就义无反顾的,去搞DBA了,通过了大牛的面试!!然后开始了数据生涯!!为什么突然换??原因很简单,面试我的是个特别厉害的大牛,java那会学不到什么东西!但是数据库可以~当然用的oracle所以自然用到pl/sql。

你现在主要是用PL/SQL来做什么工作?
处理工作中的问题

PL/SQL有什么特别让你喜欢或者需要改进的地方?
有呀,界面丑的一比!这个要改!导数据希望方便支持!比如列复制,行复制,加分隔符之类的!

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
那当然!!Oracle是数据库老大啊!!中国多少政府机构用的oracle,那是开玩笑的?

0

阿德明网络 复制链接去分享

来张代金券啊,谢谢~~

你是什么时候在什么情况下开始接触PL/SQL的?
接触Oracle的时候,就容易接触到PL。

你现在主要是用PL/SQL来做什么工作?
编写具有高级功能的程序,虽然通过多个SQL语句可能也能实现同样的功能,但是相比而言,PL/SQL具有更为明显的一些优点。

PL/SQL有什么特别让你喜欢或者需要改进的地方?
能够使一组SQL语句的功能更具模块化程序特点,可以对程序中的错误进行自动处理,使程序能够在遇到错误的时候不会被中断,具有较好的可移植性,可以移植到另一个Oracle数据库中,集成在数据库中,调用更快,减少了网络的交互,有助于提高程序性能。

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
Oracle作为关系型数据库的王者,在分布式、开源开放等方面面临NoSQL等产品技术在细分市场的挑战,另一方面在政策上面临来自国产化、安全合规的挑战。

0

aoteman675 复制链接去分享

1、你是什么时候在什么情况下开始接触PL/SQL的?
使用Oracle的时候就接触了,PL/SQL配置Oracle还挺好用的呢
2、你现在主要是用PL/SQL来做什么工作?
应用环境配置咯,PL/SQL只能用在Oracle,又不像其他语言多领域适用。
3、PL/SQL有什么特别让你喜欢或者需要改进的地方?
如果能支持MySQL那就更好了,Oracle和MySQL都是甲骨文公司的,通用就好了。PL/SQL反正只能用于数据库,别无用途。
4、你是否看好PL/SQL乃至Oracle数据库在未来的发展?
主要还是看Oracle数据库的发展,如果PL/SQL不只是局限于Oracle就好了,就算Oracle失败了,也可以支持其他数据库语言。解耦,各自依托发展。

0

阿二名店 复制链接去分享

希望我能赶上

0

cjsoldier 复制链接去分享

你是什么时候在什么情况下开始接触PL/SQL的?
正式接触是工作的时候。

你现在主要是用PL/SQL来做什么工作?
不用关系型数据库了。

PL/SQL有什么特别让你喜欢或者需要改进的地方?
只要是sql都不喜欢。对,你猜的没错,我写不好sql。

你是否看好PL/SQL乃至Oracle数据库在未来的发展?
说实话写SQL很费脑子,相信很多人都跟我一样讨厌写SQL。
设计数据库还要小心翼翼的,一旦设计错了后面再改就麻烦的很。
既然这样为什么不用NOSQL呢?这样看来关系型数据库即将成为过去式,我不看好。

对了,代金券可以给vps续费吗?

cjsoldier 回复

好吧,续费太贵,还不如再买一个。建议大家用代金券直接买个三年的。

评论