创建函数 - 错误

时间:2014-04-09 18:00:09

标签: oracle function plsql oracle-apex

创建或替换功能crime_tied_officer 宣布 lv_witness_check VARCHAR(40); 开始 嗨,伙计们

我正在尝试为我正在为项目开发的数据库创建一个函数。然而,这是错误的错误!

目前的错误是     第18行出错:PLS-00103:遇到以下任何一种情况时遇到符号“文件结束”:

   ( begin case declare end exception exit for goto if loop mod
   null pragma raise return select update while with

    << continue close current delete fetch lock
   insert open rollback savepoint set sql execute commit forall
   merge pipe purge

1. CREATE OR REPLACE FUNCTION crimes_tied_officer
2. DECLARE
3. lv_witness_check VARCHAR(40);

我已将我的功能代码包含在

下面
CREATE OR REPLACE FUNCTION crimes_tied_officer
DECLARE
lv_witness_check VARCHAR(40);
BEGIN 
IF FK1_WITNESS_TYPE_ID = '800' THEN
lv_witness_check := 'External Observation Witness';
ELSIF FK1_WITNESS_TYPE_ID = 801 THEN
lv_witness_check := 'Expert Witness';
ELSIF FK1_WITNESS_TYPE_ID = 802 THEN
lv_witness_check := 'Partner or Spouse';
ELSIF FK1_WITNESS_TYPE_ID = 803 THEN
lv_witness_check := 'Police Officer';
ELSIF FK1_WITNESS_TYPE_ID = 804 THEN
lv_witness_check := 'The Accused';
ELSE lv_witness_check := 'No Witness Type Selected';
END IF;
RETURN lv_witness_check;
END;

我的表位于以下链接。 http://gyazo.com/0d01e276984bf464be36db075fc62e56

http://gyazo.com/de5c17891455e01fcf81b32f86fab80c

1 个答案:

答案 0 :(得分:0)

试试这个,你还需要指定一个返回类型

CREATE OR REPLACE FUNCTION crimes_tied_officer(FK1_WITNESS_TYPE_ID VARCHAR2) RETURN VARCHAR2
  AS
    lv_witness_check VARCHAR2(40);
  BEGIN
    IF FK1_WITNESS_TYPE_ID    = '800' THEN
      lv_witness_check       := 'External Observation Witness';
    ELSIF FK1_WITNESS_TYPE_ID = 801 THEN
      lv_witness_check       := 'Expert Witness';
    ELSIF FK1_WITNESS_TYPE_ID = 802 THEN
      lv_witness_check       := 'Partner or Spouse';
    ELSIF FK1_WITNESS_TYPE_ID = 803 THEN
      lv_witness_check       := 'Police Officer';
    ELSIF FK1_WITNESS_TYPE_ID = 804 THEN
      lv_witness_check       := 'The Accused';
    ELSE
      lv_witness_check := 'No Witness Type Selected';
    END IF;
    RETURN lv_witness_check;
  END;