相关疑难解决方法(0)

Oracle中的函数与过程

任何人都能解释一下Oracle中函数和过程之间的主要区别是什么?如果我能用功能做所有事情,为什么我必须使用程序?

  1. 如果我不能在sql语句中调用过程,那么,我会写一个函数来做同样的工作.
  2. 程序不返回值,好吧,我会在任何dml操作后只返回sql%rowcount或1(成功),0(异常)
  3. 程序和函数都可以通过OUT/IN OUT参数将变量传递给调用环境

我听说主要区别在于性能,"程序比功能更快".但没有任何细节.

提前致谢.

oracle plsql stored-procedures stored-functions oracle11g

49
推荐指数
3
解决办法
8万
查看次数

PL/Sql程序vs功能?

我试图查看pl/sql过程和函数之间的区别,并找到链接http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030.首先让我告诉你开发人员通常用pl/sql过程和函数做什么

1)想获得一些回报值.他可以用函数和程序来解决它.如果他想要返回单个值的函数,他可以使用return语句.如果他想要返回多个值,他可以使用inout参数来实现它.他可以使用inout参数从过程中获取返回值(不是使用return语句)

但只要他能够使用return语句或inout参数实现其意图,它对开发人员没有任何影响.

所以这里也可以互相替换.

2)他可以在功能和程序中使用DML.所以在这里他也可以使用其中任何一个来改变数据库的状态.

所以我没有得到任何具体的推理,哪一个可以在一些人可以互相替换.

我在某种程度上发现的唯一合理的原因是函数可以从SQL调用,程序不能

有人可以解释哪一个使用的时间和原因?

sql oracle plsql

18
推荐指数
1
解决办法
3万
查看次数

获取 oracle.sql.array 的长度

在 Oracle 数据库上,我有一个包含 SDO_GEOMETRY 对象的表。我想在数据库中查询那些边小于 x 的多边形。从理论上讲,这对于像这样的查询很容易

SELECT * FROM myTable t WHERE LENGTH(t.geometry.sdo_ordinates) < x
Run Code Online (Sandbox Code Playgroud)

显然, LENGTH 函数是为 char 定义的,并且类型 t.geometry.sdo_ordinates是 oracle.sql.ARRAY 所以这不起作用。在 Oracle 中选择长度或数组不应该有一种简单的方法吗?不知何故,我无法正确使用语法。

PS:我用下面的查询解决了我的搜索,仍然是原来的问题,是不是有一个数组大小/长度函数?

SELECT * FROM myTable t WHERE LENGTH(t.geomety.Get_WKT()) < (x * c)
Run Code Online (Sandbox Code Playgroud)

sql arrays oracle

5
推荐指数
1
解决办法
1万
查看次数

我们可以在PL/SQL中的函数内调用过程吗?

我们可以在程序里面调用函数,但是可以在函数内部调用程序吗?我试过但我不能在函数内部调用程序.你能告诉我为什么我们不能调用函数内的程序吗?

oracle plsql stored-procedures function oracle10g

2
推荐指数
2
解决办法
6万
查看次数

PL/SQL中函数和过程之间的区别

可能重复:
PL/SQL中的函数和过程有什么区别?

函数总是返回一个值,但是当我们在一个过程中使用'out'时,过程也会返回一个值,所以请告诉我什么时候应该编写一个函数,什么时候应该编写一个过程?我们决定使用程序或功能的标准是什么?

oracle plsql

1
推荐指数
1
解决办法
1万
查看次数