1.为什么在procedures里的变量有前面要加 “:”有些不用,书上没有说明白.2.如何写一个可以打印出某一条或是全部记录的procedures;
如下是自己写的,总是不对CREATE OR REPLACE PROCEDURE T_MEETING_ORDER_GetModel(v_user_id in number)
TYPE T_CURSOR IS REF CURSOR; 
begin
AS 
  open T_CURSOR for SELECT * FROM m_user;
  WHERE m_user.user_id = v_user_id;
end;不知道怎样可以通过编译。帮忙看看。谢谢!

解决方案 »

  1.   

    1。有冒号的,表示给前面的变量赋值。2。open T_CURSOR for SELECT * FROM m_user;
      WHERE m_user.user_id = v_user_id; 
    嗬嗬,open的写法就有问题。第一行最后的分号干什么用?
    只是打开了游标,后面呢?不输出?
    最后不关闭?
      

  2.   

    有关第一问题,我可能没有表达清楚自己的意思。问题是有变量在赋值时,有的前面会加:,书上有说过要加。

    VARIABLE result NUMBER
    BEGIN
    SELECT (sal*12)+nvl(comm, 0) INTO :result FROM emp WHERE empno=7788;
    END;
    PRINT result           有的没有加。 自己试过。
    DECLARE
    DECLARE
       v_empno   emp.empno%TYPE   := &empno;
       rec  emp%ROWTYPE;
    BEGIN
       SELECT * INTO rec FROM emp WHERE empno = v_empno;
       DBMS_OUTPUT.put_line ( '姓名:'||rec.ename||'工资:'||rec.sal||'工作时间:'||rec.hiredate);
    END;
    我是想知道,如:procedures在c#程序里被调用,procedures变量的使用,是不是有什么规则