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