【问题标题】:Oracle SQL Function: Adding local variablesOracle SQL 函数:添加局部变量
【发布时间】:2018-12-19 07:51:48
【问题描述】:

在存储过程中,我可以添加v_bar 局部变量,如下所示:

CREATE OR REPLACE PROCEDURE A_PROC (
    foo        VARCHAR2
)

AS 
    v_bar  VARCHAR2(32);  

BEGIN

    SELECT FOO into v_bar WHERE ...;

END A_PROC ;

问题

v_bar应该如何在下面的函数中声明?

CREATE OR REPLACE FUNCTION A_FUNC(
    foo        VARCHAR2
) RETURN NUMBER AS total NUMBER;

BEGIN
  -- Where to declare v_bar ?
  v_bar := 'bla';

END A_FUNC;

【问题讨论】:

    标签: oracle plsql oracle10g


    【解决方案1】:

    完全一样;没有不同。例如:

    create or replace function a_func (foo in varchar2)
      return number 
    as
      total number;
      -- v_bar varchar2(32);
      v_bar number;    --> should match RETURN datatype
    begin
      select foo into v_bar from ...;
    
      total := v_bar * 1000;
    
      return v_bar;
    end;  
    

    【讨论】:

      【解决方案2】:

      您可以在 'as' 或 'is' 子句之后声明一个变量。

      CREATE OR REPLACE FUNCTION A_FUNC(
      foo        VARCHAR2
      ) RETURN NUMBER 
      as
      v_bar     VARCHAR2(32);  --Variable declared
      v_bar_no  NUMBER(10);    --Variable declared
      BEGIN
        -- Now you can use this variable
        v_bar := 'bla';
      
      END A_FUNC;
      

      【讨论】:

        猜你喜欢
        • 2013-05-03
        • 1970-01-01
        • 2011-10-23
        • 2022-08-02
        • 2015-03-03
        • 2019-03-10
        • 2016-12-30
        • 1970-01-01
        相关资源
        最近更新 更多