oracle 函数 数组函数返回数组类型怎么调用

他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)查看: 6846|回复: 7
oracle不允许使用select function_name from duall调用返回值是布尔类型的函数,晕。
论坛徽章:0
oracle不允许使用select function_name from duall调用返回值是布尔类型的函数,晕。
论坛徽章:64
以前也没在意,现在看到你的帖子后一测试,的确是这样的:
SQL& create or replace function test(a number) return boolean is
&&3&&begin
&&4& &&&return(a&10);
函数已创建。
SQL& select test(5)
select test(5) from dual
ERROR 位于第 1 行:
ORA-06552: PL/SQL: Statement ignored
ORA-06553: PLS-382: expression is of wrong type
论坛徽章:64
那&布尔类型的函数&该如何使用呢?
论坛徽章:3
1&&declare
&&3&&begin
&&4&&v_b :=f_test(5);
&&5&&if v_b = true then
&&6& &dbms_output.put_line('true');
&&8& & dbms_output.put_line('false');
PL/SQL 过程已成功完成。
SQL& set serveroutput on
PL/SQL 过程已成功完成。
论坛徽章:64
就是说只能在pl/sql中使用了.
论坛徽章:16
我也是第一次才发现这个问题。神奇的dual到底底层还隐藏什么?
SQL& create table dates(time date);
表已创建。
SQL& insert into dates values(sysdate);
已创建 1 行。
SQL& select *
--------------
28-4月 -07
insert into dates values(to_char(sysdate,'yyyy-mm-dd'))
& && && && && && && && & *
第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配
SQL&&&insert into dates values(to_date(yyyy-mm-dd'));
ORA-01756: 引号内的字符串没有正确结束
SQL& alter session set nls_date_format='yyyy-mm-dd';
会话已更改。
SQL& insert into dates values(to_date(sysdate,'yyyy-mm-dd'));
已创建 1 行。
SQL& insert into dates values(to_char(sysdate,'yyyy-mm-dd'));
已创建 1 行。
SQL&&&select * from dba_SYNONYMs
&&2&&where SYNONYM_name='DUAL';
OWNER& && && && && && && && &&&SYNONYM_NAME& && && && && && & TABLE_OWNER& && && && && && &&&TABLE_NAME& && && &
------------------------------ ------------------------------ ------------------------------ --------------
PUBLIC& && && && && && && && & DUAL& && && && && && && && && &SYS& && && && && && && && && & DUAL
SQL& set autotrace on
SQL& select *
----------------------------------------------------------
& &0& && &SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1 Bytes=2)
& &1& & 0& &TABLE ACCESS (FULL) OF 'DUAL' (TABLE) (Cost=2 Card=1 Bytes
& && && & =2)
论坛徽章:112
SQL不支持BOOLEAN类型,只能变通
论坛徽章:112
最初由 lcmlsj 发布
[B]我也是第一次才发现这个问题。神奇的dual到底底层还隐藏什么?
SQL& create table dates(time date);
表已创建。
SQL& insert into dates values(sysdate);
已创建 1 行。
SQL& select *
--------------
28-4月 -07
insert into dates values(to_char(sysdate,'yyyy-mm-dd'))
& && && && && && && && & *
第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配
SQL&&&insert into dates values(to_date(yyyy-mm-dd'));
ORA-01756: 引号内的字符串没有正确结束
SQL& alter session set nls_date_format='yyyy-mm-dd';
会话已更改。
SQL& insert into dates values(to_date(sysdate,'yyyy-mm-dd'));
已创建 1 行。
SQL& insert into dates values(to_char(sysdate,'yyyy-mm-dd'));
已创建 1 行。
SQL&&&select * from dba_SYNONYMs
&&2&&where SYNONYM_name='DUAL';
OWNER& && && && && && && && &&&SYNONYM_NAME& && && && && && & TABLE_OWNER& && && && && && &&&TABLE_NAME& && && &
------------------------------ ------------------------------ ------------------------------ --------------
PUBLIC& && && && && && && && & DUAL& && && && && && && && && &SYS& && && && && && && && && & DUAL
SQL& set autotrace on
SQL& select *
----------------------------------------------------------
& &0& && &SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1 Bytes=2)
& &1& & 0& &TABLE ACCESS (FULL) OF 'DUAL' (TABLE) (Cost=2 Card=1 Bytes
& && && & =2) [/B]
一点也不奇怪!
itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号:10 广播电视节目制作经营许可证:编号(京)字第1149号oracle&函数返回数据集(如list)
--创建表结构类型
CREATE OR REPLACE TYPE JG_TEST_TYPE AS OBJECT (unintinfo VARCHAR2
--创建嵌套表类型
CREATE OR REPLACE TYPE JG_TEST_LIST AS TABLE OF JG_TEST_TYPE;
--创建函数
CREATE OR REPLACE FUNCTION JG_GET_TABLE_TEST1 RETURN
JG_TEST_LIST& pipelined IS
v_unintinfo JG_TEST_TYPE;--临时变量
&FOR v_num in 1..10 LOOP
& v_unintinfo:=JG_TEST_TYPE(v_num);
&& PIPE ROW(v_unintinfo);--
将临时变量放入返回的结果中
&END LOOP;
&RETURN ;-- 返回数据
--调用函数
select * from TABLE(JG_GET_TABLE_TEST1());
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)oracle数据库中使用函数对参数进行处理,参数为number类型,当参数为1时函数返回a1,为2时返回a2,_百度知道
oracle数据库中使用函数对参数进行处理,参数为number类型,当参数为1时函数返回a1,为2时返回a2,
为3时返回a3,为4时返回b1,为5时返回b2,为6时返回b3,为7时返回c1,为8时返回c2,为9时返回c3,以此类推,请问如何用循环实现?
我有更好的答案
WHEN I_NUM=4 THENRETURN B1;使用case when处理create or replace function fun_test(i_num number) return varchar2asbegin
case when i_NUM = 3 THEN
这样写可以,但是我要写好多这样的case(上百条),请问可不可以用循环实现呢?
如果是这样,就只有把你的关系3-a3,b-b1...这样存到表里面,用表关联查询,也是可以的
好的,多谢
采纳率:90%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 oracle 函数 数组 的文章

 

随机推荐