在oracle的call statement的语法结构中有条object_access_expression的子clause,不知道这个子clause如何用,
恳请有各位指点一下,非常感谢
恳请有各位指点一下,非常感谢
解决方案 »
- 查询2个日期之间记录的问题
- 设置列宽问题
- 如何从一个以逗号分隔的字符串中将这些字母提取出来?
- oracle如何在函数中传递数组参数
- pl/sql developer 7.1.4.1390的注册码?
- 如何用SQL语句(oracle数据库)将/2/5/10/156/89/57/这种字符串换成'2','5','10','156','89','57'这种样式
- 这个过程有优化的空间么?
- 求救,高手请进,求一sql语句:有点难度的oracle日期比较函数!!!!!
- 救命!这个是因为数据库为空的缘故吗?
- oracle 查询出数据 计算出比率,想根据比率排序
- 在SQL*Plus中用insert插进的都是中文的,为什么一存入服务器后,再select出的就是???”
- 这样的SQL语句怎么写?
这里讲得很清楚。
只有routine_clause这条路径的例子,没有object_access_expression的例子,请给出call object_access_expression的示例,谢谢!
我看了下看它的定义:If you have an expression of an object type, you can use this form of expression to call a routine defined within the type.好像就是用来调用有自定义类型的那种函数或过程吧。
你看文档中间的链接:
------------------------------------------------------------
See Also:"Object Access Expressions " for syntax and semantics of this form of expression, and "Calling a Procedure Using an Expression of an Object Type: Example" for an example of calling a routine using an expression of an object type
------------------------------------------------------------
ADD MEMBER FUNCTION ret_name
RETURN VARCHAR2
CASCADE;CREATE OR REPLACE TYPE BODY warehouse_typ
AS MEMBER FUNCTION ret_name
RETURN VARCHAR2
IS
BEGIN
RETURN self.warehouse_name;
END;
END;
/
VARIABLE x VARCHAR2(25);CALL warehouse_typ(456, 'Warehouse 456', 2236).ret_name()
INTO :x;PRINT x;
X
--------------------------------
Warehouse 456The next example shows how to use an external function to achieve the same thing:CREATE OR REPLACE FUNCTION ret_warehouse_typ(x warehouse_typ)
RETURN warehouse_typ
IS
BEGIN
RETURN x;
END;
/
CALL ret_warehouse_typ(warehouse_typ(234, 'Warehouse 234',
2235)).ret_name()
INTO :x;PRINT x;X
--------------------------------
Warehouse 234
但我感觉这个是第一条路径吧.
第二条路径中有 table_alias 和 ( expr )这两条路径,能举个例子吗?
非常感谢