使用workbench正确格式化sql函数

gajydyqb  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(597)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两年前关门了。
改进这个问题
我在想一个任务。文本为:
编写一个存储函数,该函数将返回课程id,该课程名称包含给定的参数模式字符串。模式匹配必须使用like。请参考课程表。
如果输入的字符(如z)不在课程名称中,则应显示:no record found
如果输入为空:请输入有效字符串
如果输入为空:请输入有效字符串
如果输入是j:cps1231,cps2231
课程表

cid     | name
--------+------------------
CPS1231 | Java1
CPS2231 | Java2
CPS2232 | Data Structure

以下是我目前掌握的情况:

CREATE FUNCTION `Work` ()
RETURNS INTEGER
BEGIN

    declare msg varchar(20) default '';

    if ((name is null) or (name='')) then
        select "Please input a valid string" as message;
    else
    select group_concat(name) into msg from dreamhome.Courses where name like '%,_name%';

    elseif ((msg='') or (msg is null)) then
        select group_concat(" is not in the system") as message;
    else
        select distinct cid from dreamhome.Courses;

    end if;
end if;

我不知道接下来该怎么办。

eagi6jfj

eagi6jfj1#

CREATE FUNCTION get_id(NAME IN 
Courses.NAME%TYPE ,COURSE_ID_O[] OUT ARRAY )
RETURN COURSE_ID_O
BEGIN 
IF NAME LIKE '_J%' OR NAME LIKE '_Z%'
THEN
 SELECT  COURSE_ID INTO COURSE_ID_O FROM 
 COURSES WHERE COURSE_NAME=NAME ;
 ELIF NAME='' OR NAME=NULL
   THEN
      DBMS_OUTPUT.PUT_LINE('Please enter a valid string.');

 END IF
 EXCEPTION
 WHEN NO_DATA_FOUND THEN
 DBMS_OUTPUT.PUT_LINE('No record found If it is blank 
 or null: Please input a valid string');
 END EXCEPTION
 END

您可能会引用正确的语法,但对于上面的一般情况,这意味着函数get\u id将采用name,并将返回course\u id\u o array,因为其中有多行作为o/p如果输入course name是j,则它将打印默认错误消息。

相关问题