Oracle 12c函数在子查询的WITH子句中

时间:2017-09-20 07:19:17

标签: oracle

我在WITH子句中遇到子查询问题。

Oracle版:12c企业版12.1.0.2.0版 - 64b

     def self.call_set_storage_type
       active_type=UploadManagement.find_by_is_active(1)
       if active_type.nil?
        :file
       else
        if active_type.provider == "aws"
         :fog
        else 
         :file
        end
       end
    end
   storage call_set_storage_type

我正在

  

PLS-103:鼓励符号“文件结束”......

有什么猜测问题在哪里?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Here您可以找到一些有关WITH子句增强功能的信息。您可以尝试使用:

WITH
  FUNCTION upper_string(p_string IN VARCHAR2) RETURN VARCHAR2
  IS
  BEGIN
    RETURN UPPER(p_string);
  END;
SELECT upper_string AS ret_val
FROM dual
/

答案 1 :(得分:0)

在您的选择中,您不会将参数传递给该函数。

 SELECT upper_string('something to upper') AS ret_val
   FROM dual; 

但该错误可能表明您处于旧环境中,不支持12c的语法。