向我介绍 Oracle PL/SQL 扩展

Posted

技术标签:

【中文标题】向我介绍 Oracle PL/SQL 扩展【英文标题】:Introduce me to Oracle PL/SQL extensions 【发布时间】:2009-05-13 01:46:06 【问题描述】:

我是一名熟练的 SQL 用户;我有信心在 ANSI-SQL 中为 Sybase、MS SQL Server、mysql 或 postgresql 创建模式和优化查询。我了解连接、子查询、索引等,所以我不需要概括在 Oracle 下没有什么不同。

我将从事需要使用 Oracle 的工作。指向我的在线资源,这些资源不是作为“Oracle 的 SQL 简介”,而是用于解释“为已经了解 SQL 的人提供 PL/SQL”的资源。

我对以下内容特别感兴趣:PL/SQL 扩展的简明指南,以及优化 Oracle 查询。

【问题讨论】:

【参考方案1】:

Oracle® Database PL/SQL User's Guide and Reference (10g)真的,你还想要什么?

如果您是 Oracle 的新手,我还建议您花一些时间学习它的事务模型,因为它与 SQL Server 有细微的不同,可能会咬到您。 Here 是一篇很好的文章。另一位建议阅读 Kyte 的发帖人很到位。

【讨论】:

【参考方案2】:

您应该知道 PL/SQL 是一种或多或少完整的编程语言。像我这样的疯狂的人创建应用程序,其中大部分工作都在服务器上的 PL/SQL 包中完成。

【讨论】:

好点子,这个问题确实有点像 OP 认为 PL/SQL 只是 ANSI-SQL 之上的一些额外的 Oracle 时髦【参考方案3】:

asktom.oracle.com 对浏览很有用。

我建议您研究以下强大的功能:-

分析函数 物化视图 流水线 PL/SQL 函数

【讨论】:

【参考方案4】:

阅读概念:http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/toc.htm

【讨论】:

【参考方案5】:

阅读 Steve Feuerstein 的文章和书籍,他是 PL/SQL 的主要传播者之一。

关注他们的 PL/SQL 数据结构,如游标、关联数组、表(PL/SQL 不是 SQL)等。

在使用谷歌搜索 Oracle 代码时要记住一件事,您遇到的旧代码要比新代码多得多。尝试学习新的而不是旧的。

例如,循环查询的旧方法是创建一个游标,然后对其执行 while 循环,直到它不返回任何内容。现在你可以隐式地创建一个这样的循环:

FOR Test IN (Select Ct from TableCT) LOOP Sum := Sum + Test.Ct; 结束循环;

要优化查询,请获取 SQL Developer 并运行解释计划。可能需要一段时间才能理解,但这是我发现的最好方法。此外,如果您还没有遇到过,WITH 子句可以为优化查询创造奇迹。

【讨论】:

for test in (select ..) loop ... end loop 至少有 12 年的历史了,我在 1997 年使用过它(Oracle 7.3)。 我对隐式光标的“新”的错误。但是,我相信您必须小心使用谷歌搜索 oracle 代码这一点仍然有效。

以上是关于向我介绍 Oracle PL/SQL 扩展的主要内容,如果未能解决你的问题,请参考以下文章

使用 Oracle PL/SQL 扩展 zip 流

Oracle实战笔记(第六天)之PL/SQL基础

在 Oracle PL/SQL 的触发器中扩展变量(IF :new.variable_name IS NULL THEN

Oracle数据库连接工具的使用

PL/SQL 之 基础

PL/SQL 编程