create or replace function getTerm(username_new varchar2(32))
return varchar2(10)
as
begin
result varchar2(10);
term number:=1;
yearCode varchar2(10):=substr(username_new,4,2);
semesterCode varchar2(10):=substr(username_new,6,1);
year number:=convert(number,yearCode);
currentdate date(7):=TO_DATE(to_char(getdate(),'YYYY-MM-DD'),'YYYY-MM-DD');
currentyear number:=convert(number,to_char(currentdate,'yyyy'));
lastyear number:=0;
d date(7):=TO_DATE(to_char(currentdate,'YYYY')+'-'+'03-16','YYYY-MM-DD');
newTermStartDate date(7);
lastTermEndDate date(7);
if currentdate<d then
lastyear:=1;
end if;
if lastyear=1 then
currentyear:=currentyear-1;
end if;
term:=(currentyear-year)*2;
newTermStartDate:=TO_DATE(to_char(currentdate,'YYYY')+'-09-16','YYYY-MM-DD');
lastTermEndDate:=TO_DATE(to_char(currentdate,'YYYY')+'-03-16','YYYY-MM-DD');
if currentdate<newTermStartDate then
if currentdate>lastTermEndDate then
term:=term+1;
end if;
else
term:=term+2;
end if;
if semesterCode=2 then
term:=term-1;
end if;
result:=convert(varchar2(10),term);
return result;
end getTerm;
这是我写的sql函数
下面是错误报告:
[Err] ORA-24344: success with compilation error[Err] create or replace function getTerm(username_new varchar2(32))
return varchar2(10)
as
begin
result varchar2(10);
term number:=1;
yearCode varchar2(10):=substr(username_new,4,2);
semesterCode varchar2(10):=substr(username_new,6,1);
year number:=convert(number,yearCode);
currentdate date(7):=TO_DATE(to_char(getdate(),'YYYY-MM-DD'),'YYYY-MM-DD');
currentyear number:=convert(number,to_char(currentdate,'yyyy'));
lastyear number:=0;
d date(7):=TO_DATE(to_char(currentdate,'YYYY')+'-'+'03-16','YYYY-MM-DD');
newTermStartDate date(7);
lastTermEndDate date(7);
if currentdate<d then
lastyear:=1;
end if;
[Err] ORA-00900: invalid SQL statement[Err] if lastyear=1 then
currentyear:=currentyear-1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] term:=(currentyear-year)*2
[Err] ORA-00900: invalid SQL statement[Err] newTermStartDate:=TO_DATE(to_char(currentdate,'YYYY')+'-09-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] lastTermEndDate:=TO_DATE(to_char(currentdate,'YYYY')+'-03-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] if currentdate<newTermStartDate then
if currentdate>lastTermEndDate then
term:=term+1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] else
term:=term+2
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] if semesterCode=2 then
term:=term-1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] result:=convert(varchar2(10),term)
[Err] ORA-00900: invalid SQL statement[Err] return result
[Err] ORA-00900: invalid SQL statement[Err] end getTerm
[Msg] Finished - Unsuccessfully
return varchar2(10)
as
begin
result varchar2(10);
term number:=1;
yearCode varchar2(10):=substr(username_new,4,2);
semesterCode varchar2(10):=substr(username_new,6,1);
year number:=convert(number,yearCode);
currentdate date(7):=TO_DATE(to_char(getdate(),'YYYY-MM-DD'),'YYYY-MM-DD');
currentyear number:=convert(number,to_char(currentdate,'yyyy'));
lastyear number:=0;
d date(7):=TO_DATE(to_char(currentdate,'YYYY')+'-'+'03-16','YYYY-MM-DD');
newTermStartDate date(7);
lastTermEndDate date(7);
if currentdate<d then
lastyear:=1;
end if;
if lastyear=1 then
currentyear:=currentyear-1;
end if;
term:=(currentyear-year)*2;
newTermStartDate:=TO_DATE(to_char(currentdate,'YYYY')+'-09-16','YYYY-MM-DD');
lastTermEndDate:=TO_DATE(to_char(currentdate,'YYYY')+'-03-16','YYYY-MM-DD');
if currentdate<newTermStartDate then
if currentdate>lastTermEndDate then
term:=term+1;
end if;
else
term:=term+2;
end if;
if semesterCode=2 then
term:=term-1;
end if;
result:=convert(varchar2(10),term);
return result;
end getTerm;
这是我写的sql函数
下面是错误报告:
[Err] ORA-24344: success with compilation error[Err] create or replace function getTerm(username_new varchar2(32))
return varchar2(10)
as
begin
result varchar2(10);
term number:=1;
yearCode varchar2(10):=substr(username_new,4,2);
semesterCode varchar2(10):=substr(username_new,6,1);
year number:=convert(number,yearCode);
currentdate date(7):=TO_DATE(to_char(getdate(),'YYYY-MM-DD'),'YYYY-MM-DD');
currentyear number:=convert(number,to_char(currentdate,'yyyy'));
lastyear number:=0;
d date(7):=TO_DATE(to_char(currentdate,'YYYY')+'-'+'03-16','YYYY-MM-DD');
newTermStartDate date(7);
lastTermEndDate date(7);
if currentdate<d then
lastyear:=1;
end if;
[Err] ORA-00900: invalid SQL statement[Err] if lastyear=1 then
currentyear:=currentyear-1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] term:=(currentyear-year)*2
[Err] ORA-00900: invalid SQL statement[Err] newTermStartDate:=TO_DATE(to_char(currentdate,'YYYY')+'-09-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] lastTermEndDate:=TO_DATE(to_char(currentdate,'YYYY')+'-03-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] if currentdate<newTermStartDate then
if currentdate>lastTermEndDate then
term:=term+1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] else
term:=term+2
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] if semesterCode=2 then
term:=term-1
[Err] ORA-00900: invalid SQL statement[Err] end if
[Err] ORA-00900: invalid SQL statement[Err] result:=convert(varchar2(10),term)
[Err] ORA-00900: invalid SQL statement[Err] return result
[Err] ORA-00900: invalid SQL statement[Err] end getTerm
[Msg] Finished - Unsuccessfully
RETURN VARCHAR2(10) AS
RESULT VARCHAR2(10);
TERM NUMBER := 1;
YEARCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := CONVERT(NUMBER, YEARCODE);
CURRENTDATE DATE(7) := TO_DATE(TO_CHAR(GETDATE(), 'YYYY-MM-DD'),
'YYYY-MM-DD');
CURRENTYEAR NUMBER := CONVERT(NUMBER, TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE(7) := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' + '03-16',
'YYYY-MM-DD');
NEWTERMSTARTDATE DATE(7);
LASTTERMENDDATE DATE(7);
BEGIN --变量定义要放在begin前面 AS 后面 晕。
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16',
'YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16',
'YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := CONVERT(VARCHAR2(10), TERM);
RETURN RESULT;
END GETTERM;
VARCHAR2(32)这里不要制定数据的长度,改为varchar2
RETURN VARCHAR2 AS
RESULT VARCHAR2(10);
TERM NUMBER := 1;
YEARCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := CONVERT(NUMBER, YEARCODE);
CURRENTDATE DATE(7) := TO_DATE(TO_CHAR(GETDATE(), 'YYYY-MM-DD'),
'YYYY-MM-DD');
CURRENTYEAR NUMBER := CONVERT(NUMBER, TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE(7) := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' + '03-16',
'YYYY-MM-DD');
NEWTERMSTARTDATE DATE(7);
LASTTERMENDDATE DATE(7);
BEGIN
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16',
'YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16',
'YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := CONVERT(VARCHAR2(10), TERM);
RETURN RESULT;
END GETTERM;
还是不行啊[Err] ORA-24344: success with compilation error[Err] CREATE OR REPLACE FUNCTION GETTERM(USERNAME_NEW VARCHAR2)
RETURN VARCHAR2 AS
RESULT VARCHAR2(10);
TERM NUMBER := 1;
YEARCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := CONVERT(NUMBER, YEARCODE);
CURRENTDATE DATE(7) := TO_DATE(TO_CHAR(GETDATE(), 'YYYY-MM-DD'),
'YYYY-MM-DD');
CURRENTYEAR NUMBER := CONVERT(NUMBER, TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE(7) := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' + '03-16',
'YYYY-MM-DD');
NEWTERMSTARTDATE DATE(7);
LASTTERMENDDATE DATE(7);
BEGIN
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
[Err] ORA-00900: invalid SQL statement[Err] IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] TERM := (CURRENTYEAR - YEAR) * 2
[Err] ORA-00900: invalid SQL statement[Err] NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16',
'YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16',
'YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] ELSE
TERM := TERM + 2
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] IF SEMESTERCODE = 2 THEN
TERM := TERM - 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] RESULT := CONVERT(VARCHAR2(10), TERM)
[Err] ORA-00900: invalid SQL statement[Err] RETURN RESULT
[Err] ORA-00900: invalid SQL statement[Err] END GETTERM
[Msg] Finished - Unsuccessfully
--
DATE(7)
GETDATE()
USERNAME_NEW---这尼玛是oracle语法么?
data类型没有括号
当前日期用 sysdate
RETURN VARCHAR2
AS
RESULT VARCHAR2;
TERM NUMBER := 1;
YEARCODE VARCHAR2 := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2 := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := CONVERT(NUMBER, YEARCODE);
CURRENTDATE DATE := TO_DATE(TO_CHAR(sysdate, 'YYYY-MM-DD'),'YYYY-MM-DD');
CURRENTYEAR NUMBER := CONVERT(NUMBER, TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' + '03-16','YYYY-MM-DD');
NEWTERMSTARTDATE DATE;
LASTTERMENDDATE DATE;
BEGIN
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16','YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16','YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := CONVERT(VARCHAR2(10), TERM);
RETURN RESULT;
END GETTERM;
这个还是报错啊 小弟是第一次创建sql函数 菜鸟一枚
CREATE OR REPLACE FUNCTION GETTERM(USERNAME_NEW VARCHAR2)
RETURN VARCHAR2
AS
RESULT VARCHAR2;
TERM NUMBER := 1;
YEARCODE VARCHAR2 := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2 := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := TO_NUMBER(YEARCODE);
CURRENTDATE DATE := TO_DATE(TO_CHAR(sysdate, 'YYYY-MM-DD'),'YYYY-MM-DD');
CURRENTYEAR NUMBER := TO_NUMBER(TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' + '03-16','YYYY-MM-DD');
NEWTERMSTARTDATE DATE;
LASTTERMENDDATE DATE;
BEGIN
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16','YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16','YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := TO_CHAR(TERM);
RETURN RESULT;
END GETTERM;
这个还是错啊 求大神指点一下迷津
CREATE OR REPLACE FUNCTION GETTERM(USERNAME_NEW VARCHAR2) RETURN VARCHAR2 AS
RESULT VARCHAR2(100); --这里需要长度弟弟,我说的是return 后面的不需要长度
TERM NUMBER := 1;
YEARCODE VARCHAR2(100) := SUBSTR(USERNAME_NEW, 4, 2); --这里需要长度弟弟,我说的是return 后面的不需要长度
SEMESTERCODE VARCHAR2(100) := SUBSTR(USERNAME_NEW, 6, 1); --这里需要长度弟弟,我说的是return 后面的不需要长度
YEAR NUMBER := TO_NUMBER(YEARCODE);
CURRENTDATE DATE := TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD'),
'YYYY-MM-DD');
CURRENTYEAR NUMBER := TO_NUMBER(TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-' +
'03-16',
'YYYY-MM-DD');
NEWTERMSTARTDATE DATE;
LASTTERMENDDATE DATE;
BEGIN
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16',
'YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16',
'YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := TO_CHAR(TERM);
RETURN RESULT;
END GETTERM;
RETURN VARCHAR2
参数是不指定长度的。返回也是。
RESULT VARCHAR2(10);在执行部分不能定义。
term NUMBER := 1;为定义
...............等等。。
该贴作者是什么意思??
AS
RESULT VARCHAR2(10);
TERM NUMBER;
YEARCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 6, 1);
YEAR NUMBER := TO_NUMBER(YEARCODE);
CURRENTDATE DATE := TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD'),'YYYY-MM-DD');
CURRENTYEAR NUMBER := TO_NUMBER(TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY')+ '-03-16','YYYY-MM-DD');
NEWTERMSTARTDATE DATE;
LASTTERMENDDATE DATE;
BEGIN
TERM :=1;
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1;
END IF;
TERM := (CURRENTYEAR - YEAR) * 2;
NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16','YYYY-MM-DD');
LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16','YYYY-MM-DD');
IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1;
END IF;
ELSE
TERM := TERM + 2;
END IF;
IF SEMESTERCODE = 2 THEN
TERM := TERM - 1;
END IF;
RESULT := TO_CHAR(TERM);
RETURN RESULT;
END GETTERM;还是报错啊[Err] ORA-24344: success with compilation error[Err] CREATE OR REPLACE FUNCTION GETTERM(USERNAME_NEW VARCHAR2) RETURN VARCHAR2
AS
RESULT VARCHAR2(10);
TERM NUMBER;
YEARCODE VARCHAR2(10) := SUBSTR(USERNAME_NEW, 4, 2);
SEMESTERCODE NUMBER := TO_NUMBER(SUBSTR(USERNAME_NEW, 6, 1));
YEAR NUMBER := TO_NUMBER(YEARCODE);
CURRENTDATE DATE := TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD'),'YYYY-MM-DD');
CURRENTYEAR NUMBER := TO_NUMBER(TO_CHAR(CURRENTDATE, 'yyyy'));
LASTYEAR NUMBER := 0;
D DATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY')+ '-03-16','YYYY-MM-DD');
NEWTERMSTARTDATE DATE;
LASTTERMENDDATE DATE;
BEGIN
TERM :=1;
IF CURRENTDATE < D THEN
LASTYEAR := 1;
END IF;
[Err] ORA-00900: invalid SQL statement[Err] IF LASTYEAR = 1 THEN
CURRENTYEAR := CURRENTYEAR - 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] TERM := (CURRENTYEAR - YEAR) * 2
[Err] ORA-00900: invalid SQL statement[Err] NEWTERMSTARTDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-09-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] LASTTERMENDDATE := TO_DATE(TO_CHAR(CURRENTDATE, 'YYYY') + '-03-16','YYYY-MM-DD')
[Err] ORA-00900: invalid SQL statement[Err] IF CURRENTDATE < NEWTERMSTARTDATE THEN
IF CURRENTDATE > LASTTERMENDDATE THEN
TERM := TERM + 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] ELSE
TERM := TERM + 2
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] IF SEMESTERCODE = 2 THEN
TERM := TERM - 1
[Err] ORA-00900: invalid SQL statement[Err] END IF
[Err] ORA-00900: invalid SQL statement[Err] RESULT := TO_CHAR(TERM)
[Err] ORA-00900: invalid SQL statement[Err] RETURN RESULT
[Err] ORA-00900: invalid SQL statement[Err] END GETTERM
[Msg] Finished - Unsuccessfully小弟纯菜鸟 让各位见笑了 这个函数是为了得到学生所在的学期,由于学期是随着时间变化而变化,所以要计算得到