首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

看看这段代码有什么有关问题

2012-12-17 
看看这段代码有什么问题?存储过程CREATE OR REPLACE PROCEDURE P_WYB_FIND_NAME(IDIN NUMBER,NAME OUT VAR

看看这段代码有什么问题?
存储过程

CREATE OR REPLACE PROCEDURE P_WYB_FIND_NAME(ID   IN NUMBER,
                                            NAME OUT VARCHAR2) AS
BEGIN
  SELECT T.NAME INTO NAME FROM INFO_STU_1 T WHERE T.ID = ID;
END;


调用
DECLARE
  LOCAL_ID   INFO_STU_1.ID%type := 2;
  LOCAL_NAME INFO_STU_1.NAME%TYPE;
BEGIN
  P_WYB_FIND_NAME(LOCAL_ID, LOCAL_NAME);
  DBMS_OUTPUT.PUT_LINE(LOCAL_ID || '/' || LOCAL_NAME);
END;

[最优解释]
有几个问题提示你一下:
1.参数命名(应该去了解一些编码规范)
  输入参数应该这样  i_id
  输出参数应该这样  o_name
  否则,你的id和name就有可能被解析成表字段。
2.最好不要这样赤裸裸的用id,name这些有可能触及保留字的单词做变量名。
[其他解释]
一楼说的很好,还有你的过程里没有处理异常
SELECT T.NAME INTO NAME FROM INFO_STU_1 T WHERE T.ID = ID;
如果没有返回记录或返回多条记录,是会报错出异常的,要有异常处理。

热点排行