Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 不带列名的sys\u refcursor_Sql_Oracle_Plsql - Fatal编程技术网

Sql 不带列名的sys\u refcursor

Sql 不带列名的sys\u refcursor,sql,oracle,plsql,Sql,Oracle,Plsql,我正在使用一个函数来打印表中的值 create or replace FUNCTION UserDetails(p_startDate IN VARCHAR, p_endDate in VARCHAR) RETURN sys_refcursor AS v_cursor sys_refcursor; BEGIN IF to_date(p_endDate, 'dd-mm-yyyy') - to_date(p_startDate, 'dd-mm-yyyy') > 90 T

我正在使用一个函数来打印表中的值

create or replace FUNCTION UserDetails(p_startDate IN VARCHAR, p_endDate in VARCHAR) RETURN sys_refcursor
AS
    v_cursor    sys_refcursor;
BEGIN

    IF to_date(p_endDate, 'dd-mm-yyyy') - to_date(p_startDate, 'dd-mm-yyyy') > 90 THEN
        RAISE invalid_number;
    END IF;
 
  OPEN v_cursor FOR  SELECT  UPPER(name) NAME, MAX(Updated_date) UPDATED_DATE
    FROM s_user_data
   WHERE Updated_date  between to_Date(p_startDate,'DD-MON-YYYY') and to_Date(p_endDate,'DD-MON-YYYY')
   ORDER BY Updated_date  DESC;

 RETURN v_cursor;

 EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.PUT_LINE (TO_CHAR (SYSDATE, 'HH24:MI:SS') || ' Error: ' || SQLCODE || ' ' || SQLERRM);
      RAISE;

END;
运行该功能后:从dual中选择UserDetails('08-MAY-2021'、'09-MAY-2021')

我得到以下输出: {,,}

我必须做到以下几点: {,,}


有没有办法不使用列名获取输出。请告知。

如果要从sqlplus执行,请输入:

SET HEAD OFF
如果您是从sql开发人员或某个IDE执行,就在anonym block put之前,使用相同的语句:SET HEAD OFF,相当于SET HEADING OFF

在colcusion中,文章如下:

一般规则是:

SET HEAD[ING] OFF

你的功能不一致。为什么将输入参数
p_startDate
p_endDate
声明为
VARCHAR
,而不是
DATE

在您的代码中

to_date(p_endDate, 'dd-mm-yyyy') - to_date(p_startDate, 'dd-mm-yyyy')
再往下

to_Date(p_startDate,'DD-MON-YYYY') and to_Date(p_endDate,'DD-MON-YYYY')
输入值不能同时具有格式
dd-mm-yyyy
dd-MON-yyyy

关于你的实际问题:你真的不清楚你想要什么。如何调用该函数


如果函数返回一个RefCursor,则必须调用该函数(这并不意味着
select…from dual
)并处理该光标。另一个选择可能是或。但是,只要您的要求不明确,就很难帮助您。

如何显示ref光标取决于您的客户机或应用程序。例如,在SQLDeveloper中,您会看到以脚本或语句的形式运行查询的不同结果。不过,您想要的输出看起来有点奇怪。您不希望输出为列吗?