Oracle 如何在函数中使用select语句?
我试图构建一个从表中返回值的函数Oracle 如何在函数中使用select语句?,oracle,Oracle,我试图构建一个从表中返回值的函数 create or replace FUNCTION TO_LOCAL_CURRENCY ( CURR IN VARCHAR2 , VAL IN VARCHAR2 ) RETURN NUMBER AS BEGIN RETURN (select EXRATE from exchangerates where CURR = 'EUR' ) * VAL; END TO_LOCAL_CURRENCY; 基本上,我输入一种货币
create or replace
FUNCTION TO_LOCAL_CURRENCY
(
CURR IN VARCHAR2
, VAL IN VARCHAR2
) RETURN NUMBER AS
BEGIN
RETURN (select EXRATE
from exchangerates
where CURR = 'EUR' ) * VAL;
END TO_LOCAL_CURRENCY;
基本上,我输入一种货币和值,它从exchangerates表中查找汇率,将EXRATE乘以VAL,然后返回结果
我得到以下错误
Error(9,11): PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( - + case mod new not null <an identifier> <
错误(9,11):PLS-00103:在预期以下情况之一时遇到符号“SELECT”:((+case mod new not null)<
将结果选择到一个局部变量中,然后返回:
create or replace
FUNCTION TO_LOCAL_CURRENCY
(
CURR IN VARCHAR2
, VAL IN VARCHAR2
) RETURN NUMBER AS
EXCHANGE_RATE NUMBER;
BEGIN
select EXRATE
into EXCHANGE_RATE
from exchangerates
where CURR = 'EUR';
return EXCHANGE_RATE * VAL;
END TO_LOCAL_CURRENCY;
选择
将结果放入一个局部变量,并返回:
create or replace
FUNCTION TO_LOCAL_CURRENCY
(
CURR IN VARCHAR2
, VAL IN VARCHAR2
) RETURN NUMBER AS
EXCHANGE_RATE NUMBER;
BEGIN
select EXRATE
into EXCHANGE_RATE
from exchangerates
where CURR = 'EUR';
return EXCHANGE_RATE * VAL;
END TO_LOCAL_CURRENCY;
选择
将结果放入一个局部变量,并返回:
create or replace
FUNCTION TO_LOCAL_CURRENCY
(
CURR IN VARCHAR2
, VAL IN VARCHAR2
) RETURN NUMBER AS
EXCHANGE_RATE NUMBER;
BEGIN
select EXRATE
into EXCHANGE_RATE
from exchangerates
where CURR = 'EUR';
return EXCHANGE_RATE * VAL;
END TO_LOCAL_CURRENCY;
选择
将结果放入一个局部变量,并返回:
create or replace
FUNCTION TO_LOCAL_CURRENCY
(
CURR IN VARCHAR2
, VAL IN VARCHAR2
) RETURN NUMBER AS
EXCHANGE_RATE NUMBER;
BEGIN
select EXRATE
into EXCHANGE_RATE
from exchangerates
where CURR = 'EUR';
return EXCHANGE_RATE * VAL;
END TO_LOCAL_CURRENCY;
谢谢,但我收到了此错误。错误(8,1):PLS-00103:在预期以下情况之一时遇到符号“BEGIN”:=。(@%;非空范围默认字符符号“;”被替换为“BEGIN”以继续。抱歉,似乎我忘了一个分号。它正在工作吗?谢谢,但我收到了此错误。错误(8,1):PLS-00103:遇到符号“BEGIN”时,应出现以下情况之一::=。(@%;非空范围默认字符符号“;”被替换为“BEGIN”以继续。抱歉,似乎我忘记了分号。现在可以使用了吗?谢谢,但我收到此错误。错误(8,1):PLS-00103:遇到符号“BEGIN”当需要下列之一时::=。(@%;非空范围默认字符符号“;”被替换为“开始”以继续。抱歉,似乎我忘记了一个分号。现在可以使用了吗?谢谢,但我收到了此错误。错误(8,1):PLS-00103:在需要下列之一时遇到了符号“开始”:。(@%;非空范围默认字符符号“;”已替换为“开始”以继续。抱歉,我好像忘记了分号。现在可以使用了吗?