使用workbench正确格式化sql函数

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

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

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

  1. cid | name
  2. --------+------------------
  3. CPS1231 | Java1
  4. CPS2231 | Java2
  5. CPS2232 | Data Structure

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

  1. CREATE FUNCTION `Work` ()
  2. RETURNS INTEGER
  3. BEGIN
  4. declare msg varchar(20) default '';
  5. if ((name is null) or (name='')) then
  6. select "Please input a valid string" as message;
  7. else
  8. select group_concat(name) into msg from dreamhome.Courses where name like '%,_name%';
  9. elseif ((msg='') or (msg is null)) then
  10. select group_concat(" is not in the system") as message;
  11. else
  12. select distinct cid from dreamhome.Courses;
  13. end if;
  14. end if;

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

h9vpoimq

h9vpoimq1#

  1. CREATE FUNCTION get_id(NAME IN
  2. Courses.NAME%TYPE ,COURSE_ID_O[] OUT ARRAY )
  3. RETURN COURSE_ID_O
  4. BEGIN
  5. IF NAME LIKE '_J%' OR NAME LIKE '_Z%'
  6. THEN
  7. SELECT COURSE_ID INTO COURSE_ID_O FROM
  8. COURSES WHERE COURSE_NAME=NAME ;
  9. ELIF NAME='' OR NAME=NULL
  10. THEN
  11. DBMS_OUTPUT.PUT_LINE('Please enter a valid string.');
  12. END IF
  13. EXCEPTION
  14. WHEN NO_DATA_FOUND THEN
  15. DBMS_OUTPUT.PUT_LINE('No record found If it is blank
  16. or null: Please input a valid string');
  17. END EXCEPTION
  18. END

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

展开查看全部

相关问题