Questions tagged «plsql»

程序语言/结构化查询语言是Oracle公司针对SQL的程序语言扩展。从9.7版开始,IBM支持DB2的PL / SQL。有关PL / SQL的问题也应该标记为“ oracle”或“ db2”。


3
如何区分SQL和PL / SQL?
我知道这个问题听起来太愚蠢了,但是我从不理解这部分。 SQL * Plus可与SQL和PL / SQL一起使用。我怎么知道某些代码是SQL还是PL / SQL?如果我的代码具有for循环,那么它不再是SQL吗? PL / SQL是SQL的扩展,使其具有循环,条件等。那么默认情况下,任何SQL代码是PL / SQL代码吗?是不是 SQL和PL / SQL之间是否有界线? 触发该问题的区分黑白SQL和PL / SQL的两个示例: 这两个create table语句有什么区别? /programming/2267386/oracle-11g-varray-of-objects/2267813#2267813

6
Oracle是否可以免费下载?
我是Java开发人员,目前使用PostgreSQL作为RDBMS。但是,我也想学习Oracle。那么,我可以免费下载Oracle(11g)的最新版本吗? 我找到了此链接:Oracle Database 11g第2版下载,并且似乎可以下载。但是,我知道Oracle Server是专有的。那如何运作? 此外,随Oracle 11g的下载一起提供PL / SQL吗?
15 oracle  plsql 

5
PL / SQL:计算数组中元素的最佳方法?
鉴于这种: DECLARE TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER; MY_ARRAY T_ARRAY; V_COUNT INTEGER; 我想要做: BEGIN -- ... some code filling the MY_ARRAY array -- obviously COUNT_ELEMENTS() does not exists, this is what I'm looking for :-) V_COUNT := COUNT_ELEMENTS(MY_ARRAY); DBMS_OUTPUT.PUT_LINE('My array containts ' || V_COUNT || ' elements.'); …
14 oracle  plsql 


2
突变表错误的原因和解决方案是什么?
我了解突变表错误是由设计缺陷或有问题的查询引起的。 最近将一个旧查询投入生产,该查询引发了变异表错误。我们的DBA解决了问题,但我们不知道如何解决。 究竟是什么导致表突变错误?我们的DBA如何解决该问题?
12 oracle  trigger  plsql 

4
为什么使用显式游标而不是常规循环?
我已经编写了一年的基本Web应用程序(针对Oracle数据库),并且由于功能非常简单,因此我们大多数人坚持使用常规的FOR循环来获取数据: for i in (select * from STUDENTS) loop htp.prn(i.student_last_name || ', ' || i.student_first_name || ' ' || i.student_dob); end loop; 但是,游标似乎是做事的“正确”方法。我可以找到许多有关什么是游标以及如何遍历游标的信息,但是我找不到在常规的FOR循环上使用游标的确凿的理由。是否取决于程序的需求?我应该了解哪些固有优势?
12 oracle  plsql 

2
从何处开始?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 这个问题只需要一个答案:甲骨文入门的大量资源清单,包括数据库管理,PL / SQL和SQL。 您可能会发现您的问题已作为该问题的副本被关闭,如果是的话,请不要生气:我们正在竭尽所能提供帮助,而不会稀释该站点的专家重点。要结束与此问题的重复,我们要说:“您真正需要的是花一些时间阅读一些最佳的可用资源,而不是立即回答您的特定问题。如果您确实掌握了这些资源,很快还会有更多高级问题!
11 oracle  plsql 

1
PLS-00306错误:如何找到错误的参数?
PLS-00306:“字符串”调用中参数的数量或类型错误 原因:当命名的子程序调用不能与该子程序名称的任何声明匹配时,会发生此错误。子程序名称可能拼写错误,参数可能具有错误的数据类型,声明可能有误,或者声明可能不正确地放置在块结构中。例如,如果使用错误的名称或错误的数据类型参数调用内置平方根函数SQRT,则会发生此错误。 操作:检查子程序名称的拼写和声明。还要确认其调用正确,其参数具有正确的数据类型,并且,如果不是内置函数,则将其声明正确放置在块结构中。 如何快速确定错误的论点? 我有一个带有数十个参数的存储过程。有没有一种简便的方法来检查所用过程与已定义过程之间的差异?我不想逐行检查。

2
为什么我们不能将ddl语句直接写入PL / SQL块
为什么我们不能直接在PL / SQL块中编写ddl语句,例如当我编写时 CREATE OR REPLACE PROCEDURE test IS BEGIN truncate table table_name; // error END test; / 但, CREATE OR REPLACE PROCEDURE test IS BEGIN execute immediate 'truncate table table_name'; // works fine END test; / 为什么第二个成功执行?
11 oracle  plsql  ddl 


4
从Oracle函数返回完全动态的表
我想编写一个带有两个IN参数的函数,其中第一个是a varchar,第二个是a的列表varchars。基于这些,我想返回一个具有不同列数和类型名称的表varchar。 据我所知,我必须始终创建一个对象/记录及其表类型。这意味着我的想法行不通吗?基本目标是将系统命令输出作为表传递回被调用方。 编辑:更多的任务。我想发出一个OS命令,使用输出并将其作为表返回。OS命令的输出将是CSV格式的数据。在执行时,我不知道要返回的行数,而仅知道作为第二个arg传递的列数。我想使用的Java与动态STRUCT和ARRAY包含它们。尽管我更喜欢前一种方法。 它看起来应该像这样: create function(clob query, list of varchars cols) returns table begin execute system command(query, cols); examine sysout from command; return tabular data from syscmd as table; end
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.