应遵循的PL/SQL编码规则

全面掌握PL/SQL编码规范与最佳实践 简介:在软件开发中,编码规范对于确保代码质量和提升团队协作至关重要。PL/SQL,作为一种专门为Oracle数据库设计的编程语言,要求开发者遵循严格的编码规范。本文将深入探讨PL/SQL编码规范的多个方面,包括命名规范、注释、代码格式化、错误处理、性能优化、变量声明、过程和函数设计以及事务管理等。同时,也会介绍Oracle命名标准、数据库设计指南和常用的缩写词汇表,以帮助开发者编写更加高效、可维护和稳定的数据库程序。 阅读详情

提高编写PL/SQL代码数量及质量的四个简单易行指导方针

我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。

幸运地是,我发现找到并遵循编写出更好代码的新方法还为时不晚。就是在去年,我的代码质量有了显著改进;这些改进主要是由于制定了一些简单的规则,并像纪律一样加以遵守。

本文为PL/SQL新手及有经验的开发人员提出了四条建议;遵守其中任何一条,你的代码质量都会有提高。这四点建议都采纳,你可能会惊奇地猛然发现:你竟然是一个非常好的程序员,要远远超乎你的想象。

所有工作都独自完成

我们很少有人是孤立工作的;大多数PL/SQL开发工作是在相对较大的机构中进行的。但我们基本上还是在自己的小隔间里用自己的设备独自工作。几乎没有PL/SQL开发小组进行正规的代码复查或系统测试。

我不可能通过这篇文章改变你们开发小组的基本状态。因此,我仔细地选取出以下几点建议。实施其中任何一点并不需征得管理人员同意。不论你的小组是大是小,都不必让其中的每个人都赞同这些编码规则。你只需按以下建议来改变你的本人的编码方式:

1. 严格遵循命名约定,好像它们就是你的生命支柱。
2. 戒除编写SQL的嗜好:编写的SQL越少越好。
3. 使执行部分短小:告别"意大利面条式的代码"。
4. 找一位伙伴:非常赞同找个人来监督你的工作。

1. 遵循命名约定

如果你建立并严格遵循一套命名约定,特别是对于应用程序组件的,你就可以节省很多时间。

当然,遵循命名约定的想法并没有什么新意,你可能已经听烦了。所以我并不提出什么宏伟的命名计划,而是给出一些非常具体而明确的约定,然后证明这些约定会多么有用。

前几个月我一直在为PL/SQL开发人员设计、构建一种新工具。它名为Swyg(可以在www.swyg.com中找到),可以帮助程序员完成代码的生成、测试及重用的工作。它具有几个独特的组件。我为每个组件指定了一个由两个字母组成的缩写名称,如下所示:

SF-Swyg的基础部件
SM-Swyg的元数据
SG-Swyg的生成程序
SL-Swyg的代码库
ST-Swyg的单元测试

于是,我便遵循表1中的命名约定,同时使用这些缩写。遵循这些约定有什么好处呢?一般来讲,如果我要求一致的命名规则,我就可以更流畅更高效地编写代码。

明确地说,这些约定具有可预测性,意思是说我编写的SQL程序能生成有用的脚本。例如,通过使用表1中的约定,可以生成Swyg中所有基础包的安装脚本。执行这些工作的SQL*Plus脚本如清单1所示。这类脚本非常有用,因为它意味着我不必手动维护安装脚本。当我向Swyg方案中增加另一个表,并生成一组相关包时,我只要运行我的脚本,更新后的安装脚本便会跳出来。

2. 戒除编写SQL的嗜好

编写的SQL越少越好,这似乎与我们的直觉不太一致。对于PL/SQL开发人员来说,这是一个奇特的建议,因为PL/SQL的主要优点之一就是可以毫不费力地在代码中编写SQL语句。不过,这种简易性也是这种语言的一个致命的弱点。

可以将纯粹的SQL语句直接置于PL/SQL代码中,而无需JDBC或ODBC之类的中间层。因此,无论何时何地,PL/SQL开发人员只要需要SQL语句,他们通常就会向其应用程序代码中嵌入SQL语句。那么这样做有什么问题吗?

在PL/SQL代码中到处使用SQL语句必然会导致以下后果:

  • 尽管实际表现不同,但同一逻辑语句仍会出现重复,从而导致过多的语法分析,且难于优化应用程序的性能。
  • 暴露商务规则和方案。这直接在SQL语句中包含了执行商务规则的逻辑。这些规则总在变化,所以应用程序的维护成本会急剧增加。

当然,你要编写的每一个PL/SQL应用程序几乎都是基于基础表和视图的。你需要执行SQL语句。问题不在于是否执行,而是何时执行、如何执行。

如果你对数据结构进行封装,或者将它们隐藏于一个PL/SQL代码层(通常是一个代码包)之后,那么你的应用程序将会更健壮,而且你还会发现创建和维护变得更易多了。

我们来看一个简单的例子。 假定我需要编写一个处理某员工工作的程序。第一件事是获取该员工的全名,定义为"姓名逗号(,)姓";然后我可以进行详细分析。清单2给出了这种情况下我很可能要编写的这类代码的一个示例。

一切似乎都是这么简单和直接;这些代码可能会有什么错误呢?实际上真是非常糟糕。最主要的是我暴露了一个商务规则:全名的结构。我可能要花费数小时来对此代码及其所基于的应用程序进行测试。但就在它刚刚投入使用时,我才知道客户会不断地打电话告诉我,实际上,他们的全名应该表示为"名空格姓"。

现在怎么办?搜索所有位于引号内的单个逗号?

现实的解决方案是使用隐藏所有细节、只提供一组预定义、预测试及预优化并能完成所有任务的程序包。清单3为基于封装代码重新编写的process_employee过程。hr_employee_tp包提供了用于定义保存姓名的局部变量的类型;hr_employee_rp包含有基于一种商务规则而返回全名的函数。

将显示PL/SQL语句灌入SQL代码很容易,同样,谈论封装这些语句是如何重要也不费劲。但另一方面,编写执行封装任务的代码却具有挑战性;甚至是不现实的。生成这些包或许更有意义。

几年前,我曾帮助构建这样一个生成程序。该程序段为PL/Generator,现在由Quest Software公司拥有,PL/SQL开发社区可以免费使用。你可以从我的网站www.StevenFeuerstein.com/puter/gencentral.htm下载。要知道,其封装体系结构与我在前面所概括的约定不同。PL/Generator创建了一个单独的包,它包含了一个表的类型、查询和变化逻辑的全部内容。

当你不再编写太多的SQL,而是调用执行SQL的程序时,无论你是生成还是编写自己的定制封装,你的应用程序都会受益匪浅。

3. 使执行部分短小

面对现实吧:总是与我们的判断和最新的一系列新年决议相左,我们必须停止编写意大利面条式的代码:庞大而冗长,人们实际上不可能理解它们,更不用说维护或升级了。怎样才能避免"意大利面条"呢?

实际上,答案很简单:决不允许执行部分超过50或60行。这种大小使你能在一页纸或一个屏幕上查看该代码块的整个逻辑结构,这也意味着你可以真实地领会该程序的意图,而且完全凭直觉就能理解它。

你可能非常同意上述观点,但同时又嘲笑我的建议:程序代码永远不超过50行。没错,你应当嘲笑,因为这当然是不可能的。毫无疑问,你需要超过50行的可执行代码;问题是你把这些代码放在哪,以及你怎样加以组织。

如果采取以下做法,你的确能够应对各种复杂的要求,并把代码限制在50行以内:

  • 将所有的商务规则和离散逻辑块置于其自已的程序(通常是函数)中,从而在任何可能的时候慎重地重用代码。
  • 尽量使用在程序的声明部分定义的局部模块、过程和函数。

假定我在编制一个呼叫中心应用程序。我需要编写一个程序,它要满足下面的要求:

"对于特定部门的每个员工,将其工作量(分派给该员工的呼叫次数)同该部门员工的平均工作量进行比较。如果某员工的工作量低于平均工作量,便将下一待处理呼叫分派给此人,并基于这种情况安排约定。"

我从以前的工作中获悉:我的朋友Claudia已经编写了一个分析包,它会返回工作量方面的信息。但是分派待处理呼叫和安排约定都是全新的工作,需求文档的其余部分对此进行了详细说明。

最初我想把这15页的内容全都看完,但我没有那样做。我使用了一种称为"逐步求精法"或"由顶向下设计"的技术,并先编写了清单4中的代码来实现该程序。

下面给出了清单4中最关键代码行的解释;由该程序(紧凑的执行部分)的最后开始,向上进行。这似乎有悖于直觉,但这的确是通读用逐步求精法编写的程序的最好方式。

第22~30行。用一个游标FOR循环(cursor FOR loop)来对指定部门的所有员工进行迭代处理。在第24~25行,利用分析包中的程序判定当前的员工是否工作量不足。在第27~28行,调用三个程序:assign_next_open_case、schedule_case和next_appointment。我还不知道怎样实现这些程序,但我知道它们通过其名称和参数表表达了需要事先完成的工作。

第10~19行。为第27~28行中的三个程序创建"stub",也就是占位程序。注意,它们是局部模块,在assign_workload中进行定义,且不能从其他任何程序调用。

第5~8行。定义一个游标,以获得指定部门的所有员工。现在可以设法编译此代码。

对这样一个小程序成功完成编译好像是个小胜利,也的确如此。完成正确编译,然后是简单测试,然后增加一点代码,再进行正确编译,以此类推,诸如此类的小胜利缔造出构造精良的程序,而且会非常满意。

我还可以验证该分析程序是有效的,并且找出了要分派的任务适当雇员。这些工作全部完成后,我将从三个程序中挑出一个,比如assign_next_open_case,进行下一步或下一级别的精细设计。我要阅读该任务的文档,并在assign_next_open_case里编写一个简短的执行部分,它可反映该任务的概况。

很快,我的局部过程有了它自己的局部过程和函数,但在该过程的每一步,我的代码都很短、可读、易于测试、可根据需要进行调整。

4. 找一位好伙伴

计算机并不会编程,人才会。

有多少次你弯着腰、驼着背坐在计算机前,因无法找出代码中的错误而感到非常郁闷?先是几分钟过去了,接着又过了几小时。最后,对自己都厌烦了,感到非常失败,你把头伸出你的小隔间并请朋友过来帮你看一看。

通常会有下面三种情况之一出现:

  • 当你的朋友从她的椅子上站起来时,一切都在瞬间变得非常清楚。
  • 你的朋友瞥了一眼屏幕,马上就指出了问题所在。
  • 你的朋友不负责该系统中你所做的部分,所以你必须说明你的程序在干什么。当你逐步讲解逻辑时,引起错误的问题所在会突然暴露在你面前。

事实就是自己很难调试自己的代码,因为你自己对它太投入、太专注了。

下一步

阅读
Oracle数据库10g的更多信息
oracle.com/database

Feuerstein的更多文章
otn.oracle.com/oramag/webcolumns/2003


这个问题最好的解决办法是由开发经理创造这样一种文化:各种想法是共享的、不懂是可以原谅的并不会受到处罚、定期进行建设性的代码评审。不幸的是,这些文化上的改变是难以实现的。

与此同时,我建议在帮助改变你所在小组的文化的过程中你应起带头作用。找到另一位开发人员,最好比你经验丰富,并建立一种"伙伴"关系:在出现问题时,他可以充当你的参谋,当然,你也可以充当他的参谋。事前达成共识:不知道所有问题的答案并没有什么不对。

然后为你自己制定一条简单的规则:不要为一个错误苦思冥想超过半个小时。30分钟过去后,把你的伙伴叫过来,让人类心理学为你服务,而不是跟你作对。

获得一种新工作方式的四个步骤

本文为你提供了可以采取的用于改变你的编程体验四个步骤,而无须投资新的工具或改变整个小组的工作流程。这四步甚至可以不全部遵循,只要遵守一步都会让你受益。

Steven Feuerstein (steven@stevenfeuerstein.com) 是PL/SQL语言方面的一位权威人士。Feuerstein撰写了9本有关PL/SQL (全部由O'Reilly & Associates出版公司出版)的书籍,其中包括《Oracle PL/SQL最佳实践(Oracle PL/SQL Best Practices)》和《Oracle PL/SQL编程(Oracle PL/SQL Programming)》。他还是Quest Software公司的资深技术顾问。

对象名称结构注释生成(DDL)文件
表<abbrev>_<entity>表名,如SM_TASK,用于在普通的Mentat组件中定义的任务。<abbrev>_<entity>.tab
主键列id标准是:(几乎)每个表都包含一个按一个序列生成的id列。对于交叉表等有一些例外。N/A
用于生成主键的序列<abbrev>_<entity>_seq用于一个表主键的序列名,如SG_SCRIPT_SEQ,它为Mentat产生脚本表生成一个新主键。<abbrev>_<entity>.seq
查询封装包<abbrev>_<entity>_qp包含用以在基础表(如SL_SOURCE_QP)中检索数据的标准API,它有助于在Mentat可重用库中查询各元素的源代码。说明:<abbrev>_<entity>_qp.pks
主体:<abbrev>_<entity>_qp.pkb
改变封装包<abbrev>_<entity>_cp包含用以改变(INSERT、UPDATE、DELETE)某基础表(如ST_UNITTEST_CP)中的数据的标准API,它使我能够维护单元测试定义。说明:<abbrev>_<entity>_cp.pkb
主体:<abbrev>_<entity>_cp.pks
类型封装包<abbrev>_<entity>_tp包含用于指定表(如SG_GEN_RUN_TP)的预定义类型--包括集合、REF CURSORS、记录。说明:<abbrev>_<entity>_tp.pks
主体:NA (type definitions do not need a package body)
规则封装包<abbrev>_<entity>_rp包含程序,通常是函数,它隐藏了关系到该实体的商务规则的细节。说明:<abbrev>_<entity>_rp.pks
主体:<abbrev>_<entity>_rp.pkb
其他物件包 <abbrev>_<entity>_xp包含特定实体的自定义逻辑。说明:<abbrev>_<entity>_xp.pks
主体:<abbrev>_<entity>_xp.pkb

关键字
  • <abbrev>是由两个字母组成的缩写。对于Swyg,它可以是SF、SM、SG、SL或ST。
  • <entity>是商务实体名,如TASK用于定义某人要完成任务列表;SCRIPT用于代码生成模板;等等。

PLSQL开发命名和编码规范(加水印).pdf 翻译过来的,对于开发来说制定规范是非常重要的,当你制定出一套标准后,行为就会自然而然的遵循这些规范。就像学开车一样,起初为了让汽车正常发动都要费个九牛二虎之力,现在你可能完全不动脑子就能开的很溜。规范也类似,一旦习惯了以后他们就像完全不存在了。 一个规范好不好的唯一评价标准就是对你的工作是否确实有帮助,想达到这个标准其实也挺费劲的。这就是PL/Solutions公司的专家们的用处,我们在Steven Feuerstein领导的PL/Solutions公司花了很多年时间来遴选不同的方法,测试、应用直到有满意的结果。 首先,标准必须简单。如果有规则太多记都记不清楚,那你估计永远不会用它们。相反,如果太简单,你可能也不会用。所 以需要在难和简单之间取得平衡,以便找到适合的尺度。 编程跟写小说或艺术创作一样是件非常个性化的事情,所以没有完全普适的规则。如果本规范能适合您的需要,或者对一部分人有用,我们就感到很欣慰了。 立即下载

相关推荐

零基础也能懂的Arduino ESP32离线安装包图文教程

手把手教你完成Arduino ESP32离线安装包的配置,无需联网也能快速搭建开发环境,适合初学者和网络受限用户,轻松实现arduino esp32离线安装包部署。

weixin_36213081的博客 2679

PL/SQL编码规则

应遵循的PL/SQL编码规则     作者:Steven  Feuerstein     提高编写PL/SQL代码数量及质量的四个简单易行指导方针     我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。     幸运地是,我发现找到并遵循编写出更好代码的新方法还为时不晚。就是在去年,我的代码质量有了显著改进;这...

简单就是美! 474

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

PL/SQL编码规范: 注释、变量命名、书写格式、逻辑分支、 循环处理

1. PL/SQL编码规范 PL/SQL对大小写不敏感,故切忌使用大小写区分变量和其它用户定义的元素。为使代码具有可读性,可遵循以下简单的大小写规则以便在源代码中区分这些元素: ²         全部保留字、Oracle提供的程序包、内建函数、用户定义的常数、Oracle和用户定义的数据类型,以及模式名均采用大写; ²         所有程序命名和过程名称全部采用大写。 ²      

qq_22057565的博客 1236

c语言版数据结构课程设计 学生成绩管理系统

此学生成绩管理系统完成15项功能,是我经过很多次的修改得到的。花费时间不短,功能齐全,主要完成了:输入,输出,插入,修改,删除,查询,读取文件,写入文件,复制文件,建立索引,显示各种情况下的信息,追加学生信息等等功能。一共15项。   代码如下: // shujujiegou.cpp : 定义控制台应用程序的入口点。///**本程序采用数组链表形式,原因:数组查询速度快,数组也能实现动态存储

Java 1万+

保姆级教程:用SSC Tool 5.13为先楫HPM6E00EVK生成8轴EtherCAT从站代码(含XML配置详解)

本文详细介绍了如何使用SSC Tool 5.13为先楫HPM6E00EVK开发板配置8轴EtherCAT从站,包括XML文件深度配置、代码生成与工程整合、烧录与调试技巧。教程涵盖从环境准备到性能优化的全流程,帮助开发者快速实现符合CIA402标准的8轴控制。

weixin_30352645的博客 257

PL/SQL 命名规范

-- Start 编写 PL/SQL 程序的时候,最好遵循一定的命名规范,这样代码可读性好。例如下面是一种命名规范。总之让别人从名字中很容易知道这是个什么东东。 表 _*** trade_order 临时表 _***# trade_order# 视图 _***_view trade_order_view 索引

千里之行始于足下 2408

Excel曲线拟合实战:从基础趋势线到高级回归分析

本文系统介绍了Excel曲线拟合的完整工作流,从基础的散点图与趋势线应用,到利用Solver插件进行自定义高级回归分析。文章详细讲解了线性、多项式、指数、对数等六大常用数学模型的适用场景与选择方法,并强调了通过R²值、残差图评估拟合效果、避免过拟合与外推风险的关键步骤,帮助读者掌握从数据探索到预测评估的实战技能。

weixin_29280219的博客 537

PL/SQL 编码规范

  浏览地址:http://www.williamrobertson.net/documents/plsqlcodingstandards.html    

whz110的专栏 196

openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方案

本文主要介绍了openclaw-cn : 无法将“openclaw-cn”项识别为 cmdlet、函数、脚本文件或可运行程序的名称解决方案,希望能对使用openclaw-cn的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 10万+

具身智能(26):RDK S100的LeRobot或Agile X piper机械臂控制模型

本文档详细介绍了基于ROS2的机器人控制模型架构与标定数据联动机制。核心采用"感知-规划-控制"闭环流程,通过激光雷达、相机和IMU的融合数据实现厘米级定位(≤1cm)。文档包含两大控制模型配置:1)RDKLeRobot模型,重点说明PID参数调节和标定文件路径设置;2)AgileXPiper模型,强调驱动安装与外部标定文件集成。针对常见问题提供解决方案,如控制指令无响应需验证标定路径,运动偏差过大需重新标定等。最后给出批量部署方案,通过复制基准配置文件实现多机器人快速配置,要求定位偏差

码农17年的博客 179

应遵循的PL/SQL编码规则 (转)

应遵循的PL/SQL编码规则 作者:Steven Feuerstein提高编写PL/SQL代码数量及质量的四个简单易行指导方针 我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。 幸运地是,我发现找到并遵循编写出更好代码的新方法还为时不晚。就是在去年,我的代码质量有了显著改进;这些改进主要是由于制定

albert的专栏 921

如何在Windows上安装Node-RED?

Node-RED 是一款基于流程的可视化编程工具,专注于物联网(IoT)和自动化应用的快速开发,其核心特点是通过拖拽节点构建数据流网络,实现低代码/无代码编程。

猿小白的博客 1171

应遵循的PL/SQL编码规则 (作者:Steven Feuerstein)

应遵循的PL/SQL编码规则 (作者:Steven Feuerstein)提高编写PL/SQL代码数量及质量的四个简单易行指导方针 我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的...

cuishuobi4947的博客 165

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

应遵循的PL/SQL编码规则 (作者:Steven Feuerstein) zt

提高编写PL/SQL代码数量及质量的四个简单易行指导方针[@more@]我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。 幸运地是,我发现找到...

csdn_201601的博客 140

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

编写PL/SQL编码规则

1.定义规则 定义变量时,建议使用v_作为前缀,例如v_sal,v_job等 定义常量时,建议使用c_作为前缀,例如c_rate 定义游标时,建议使用_cursor作为后缀,例如emp_cursor 定义例外时,建议使用e_作为前缀,例如e_integrity_error. 定义PL/SQL表类型时,建议使用_table_type作为后最,例如sal_table_type 定义PL/S

龙神add-走向数据架构师的路 1005

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PL/SQL语言的二进制与编码

PL/SQL(Procedural Language/SQL)是Oracle公司的数据处理语言,结合了SQL的强大功能和过程性编程的灵活性。随着信息技术的快速发展,数据的存储和传输变得越来越重要,而二进制和编码技术则在这一过程中起着关键作用。在PL/SQL中,了解二进制与编码的概念,不仅有助于我们更有效地处理数据,还能帮助我们解决实际应用中的一些复杂问题。

2501_91502808的博客 458

PL/SQL与SQL编码指南实战教程

PL/SQL与SQL编码指南实战教程 项目介绍 PL/SQL与SQL编码指南 是一个专为Oracle数据库开发人员设计的开源项目,它提供了详细的编程规范和最佳实践建议。该项目旨在提升PL/SQL及SQL代码的质量、可维护性和性能。通过遵循这些指南,开发者能够写出更加健壮且易于理解的数据库脚本。 项目快速启动 安装与配置环境 首先,确保你的系统中已安装了Git以及支持Oracle数据库的开发工具,如...

gitblog_00957的博客 889

Oracle数据库PL/SQL编码规则总结

我从1990年就开始编写PL/SQL代码。这意味着我已经编写了几万行的软件代码,但我确信,其中的绝大多数代码都非常拙劣,而且难以维护。幸运地是,我发现找到并遵循编写出更好代码的新方法还为时不晚。就是在去年,我的代码质量有了显著改进;这些改进主要是由于制定了一些简单的规则,并像纪律一样加以遵守。本文为PL/SQL新手及有经验的开发人员提出了四条建议;遵守其中任何一条,你的代码质量都会有提高。

bigxiaowei的专栏 749

PL/SQL Developer 14 配置

本文旨在对 PL/SQL 进行优化设置,提升使用舒适性。 主要部分有:【简体中文】​【自动替换】【代码美化 / PL/SQL Beautifier】【快捷键配置】【自动选择代码】

Roki_Zhang的博客 1万+

PL/SQL代码编写规则

1、标识符命名规则当在PL/SQL中使用标识符定义变量、常量时,标识符名称必须以字符开始,并且长度不能超过 30 个字符。另外,为了提高程序的可读性,Oracle 建议用户按照以下规则定义各种标识符: (1)当定义变量时,建议使用 v_ 作为前缀,例如 v_sal, v_job等。 (2)当定义常量时,建议使用 c_ 作为前缀,例如 c_rate...

weixin_33969116的博客 253

PL/SQL深入浅出

PL/SQL笔记 1.比较oracle数据类型和PL/SQL数据类型的区别,并举例说明。 答:区别:1.同样类型的大小不同;2.增加了布尔类型。 字符数据类型CHAR ,都是固定长度字符但oracle里面最大度为2kb,SQLServe 8kb。 2.比较几种异常之间的区别和使用情况。 答:有两种比较典型的异常处理分别是预定义异常和用户自定义异常。 用户自定义异常:程序员自己写错了代码,需要用户在程序中定义,使用raise显示抛出异常。 预定义异常:由PL/SQL定义的异常,无须在程序中定义。 使用情况:

qq_38063979的博客 275
上一篇: Oracle 常用函数
下一篇: 使用正规表达式编写更好的 SQL
pdcc
博客等级 码龄24年 0粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值