Oracle 函数连接PL/SQL中的名字和姓氏
如何编写一个函数来连接员工的名字和姓氏,将员工id作为输入传递给函数Oracle 函数连接PL/SQL中的名字和姓氏,oracle,function,plsql,Oracle,Function,Plsql,如何编写一个函数来连接员工的名字和姓氏,将员工id作为输入传递给函数CONCAT\u name。我试过的代码是- set serveroutput on; create or replace function concat_name(v_id employee.emp_id%type) return varchar2(25) is begin select (first_name || last_name) into concat_name from em
CONCAT\u name
。我试过的代码是-
set serveroutput on;
create or replace function concat_name(v_id employee.emp_id%type)
return varchar2(25)
is
begin
select (first_name || last_name) into concat_name from employee where emp_id = v_id;
dbms_output.put_line(concat_name);
end;
/
预期产量为-
{CONCAT_NAME(101)
--------------------------------------------------------------------------------
SmithWilliam
SmithWilliam}
但是运行上面的错误是-
Warning: Function created with compilation errors.
SELECT CONCAT_NAME(101) FROM EMPLOYEE
*
ERROR at line 1:
ORA-06575: Package or function CONCAT_NAME is in an invalid state
任何帮助都将非常感谢 嗯,不是那样的。函数存在有一个特定的原因:返回值。所以-
return
it,不要dbms\u输出。把它放到行中。当然,您也应该使用正确的语法。我建议您先阅读文档,然后阅读代码
我喜欢10g,因为它的主页被很好地划分为有用的部分。查看最受欢迎的书籍列表,然后阅读
- 应用程序开发人员指南-基础知识
- PL/SQL用户指南和参考
因为它们涵盖了您目前正在学习的PL/SQL。我想你一定知道SQL;如果没有,那就先读那本书。另外,既然您知道要阅读什么,请随意查找与您的数据库版本相关的文档
在您的任务中:
SQL> create or replace function concat_name(v_id employee.emp_id%type)
2 return varchar2
3 is
4 retval varchar2(25);
5 begin
6 select first_name || last_name
7 into retval
8 from employee
9 where emp_id = v_id;
10
11 return retval;
12 end;
13 /
Function created.
SQL> select concat_name(101) from dual;
CONCAT_NAME(101)
-----------------------------------------------------------------------------
SmithWilliam
SQL>
运行show errors
查看问题的详细信息非常感谢您提供的解决方案和学习资料,我一定会仔细阅读。