Oracle SQL函数/函数执行给出错误代码900 SQL Developer

Oracle SQL函数/函数执行给出错误代码900 SQL Developer,sql,function,oracle11g,oracle-sqldeveloper,Sql,Function,Oracle11g,Oracle Sqldeveloper,我在SQLDeveloper中编译了以下函数,在Oracle11GR2DB上没有错误。它主要只是一个测试函数,稍后将构建它,但它的目的是接收文本值和类别值,其中文本可能是Hello,类别是French,结果应该是Bonjour create or replace FUNCTION testTranslate ( originaltext IN VARCHAR2, fineoscategory IN VARCHAR2 DEFAULT NULL) RETU

我在SQLDeveloper中编译了以下函数,在Oracle11GR2DB上没有错误。它主要只是一个测试函数,稍后将构建它,但它的目的是接收文本值和类别值,其中文本可能是Hello,类别是French,结果应该是Bonjour

create or replace FUNCTION testTranslate
    (
      originaltext   IN VARCHAR2,
      fineoscategory IN VARCHAR2 DEFAULT NULL)
    RETURN VARCHAR2
  AS
    translatedttext VARCHAR2(255) := '';
  BEGIN
    SELECT distinct tti.translatedtex
    INTO translatedttext
    FROM toctranslationitem tti,
      todomaininstance tdi
    WHERE tti.translationty   = fineoscategory
    AND tti.originaltext    = originaltext;
    RETURN translatedttext;
  END;
我以前从未使用过SQL Developer,我只是开始熟悉创建函数,所以我不完全确定如何运行它

我尝试了以下方法:

testTranslate('Hello', 'French');

execute testTranslate('Hello', 'French');

Begin
    testTranslate('Hello', 'French');
end;
前两个给我错误900无效SQL语句,第三个给我错误6550 testTranslate不是过程或未定义

当我尝试在SQLDeveloper中调试它时,我会遇到一个单独的问题。脚本似乎正在运行,但我收到错误消息1422 exact fetch返回的行数大于请求的行数。函数中的select语句在select后不带distinct而自行运行时,会返回很多值,但带distinct时,它只返回一个值,因此不确定这是关于什么的

有任何指示吗?

请尝试

SELECT testTranslate ('Hello', 'French') FROM DUAL;

在Oracle中,函数使用
select
关键字执行。因此,请尝试执行如下函数:-

SELECT testTranslate('Decision', 'Text') FROM DUAL;

这可能对你有帮助。

两个答案都正确,但你提前一分钟到达:)。