Oracle存储过程:如何输出带别名NAMADEP_1411510926的结果
搞定Oracle存储过程输出带别名的问题
嘿,我知道你为啥只得到job_id的值了——你原来写的select job_id as NAMADEP_141510926 into pekerjaan里的别名,只是查询语句内部的临时命名,并不会自动跟着变量输出出来。毕竟你已经把job_id的值存到pekerjaan变量里了,直接打印变量当然只有数值啦。
要让输出带上你要的别名NAMADEP_1411510926,只需要在输出的时候把别名文本和变量值拼在一起就行,修改后的存储过程代码如下:
create or replace procedure carinamapekerjaan (kode number) as pekerjaan varchar(50); begin -- 这里的查询别名可以去掉,因为已经直接赋值给变量了,留着不影响但没必要 select job_id into pekerjaan from employees where employee_id = kode; -- 把别名和变量值拼接后输出 dbms_output.put_line('NAMADEP_1411510926: ' || pekerjaan); end; /
额外实用小建议:
- 如果你的别名需要带空格或者特殊字符,可以用双引号包裹,比如输出写成
dbms_output.put_line('"NAMADEP 1411510926": ' || pekerjaan);,这样输出格式会更清晰。 - 万一查询不到数据或者返回多行,存储过程会直接报错,不如加个异常处理更稳妥:
create or replace procedure carinamapekerjaan (kode number) as pekerjaan varchar(50); begin select job_id into pekerjaan from employees where employee_id = kode; dbms_output.put_line('NAMADEP_1411510926: ' || pekerjaan); exception when no_data_found then dbms_output.put_line('NAMADEP_1411510926: 没找到对应员工的职位信息哦'); when too_many_rows then dbms_output.put_line('NAMADEP_1411510926: 居然找到多个匹配的职位,有点奇怪'); end; /
这样运行之后,输出就会变成NAMADEP_1411510926: SA_REP这种带别名的格式啦。
内容的提问来源于stack exchange,提问作者Yonathan Rizky
相关产品推荐
相关产品推荐

