Oracle SQL 函数:添加局部变量

Oracle SQL Function: Adding local variables

在存储过程中,我可以按如下方式添加 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;

一模一样;没有不同。例如:

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;  

您可以在 '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;