select o_userid from dual

解决方案 »

  1.   


    SQL>     declare
      2       
      3          o_UserID varchar2(20);
      4          i_UserID integer;
      5      begin 
      6            o_UserID := '000000';
      7            i_UserID :=1;
      8           spc(i_UserID , o_UserID);
      9           dbms_output.put_line(o_UserID);
     10     end;
     11  /PL/SQL 过程已成功完成。SQL> select o_userid from dual
      2  ;
    select o_userid from dual
           *
    ERROR 位于第 1 行:
    ORA-00904: 无效列名
      

  2.   

    你用sql&plus执行的?在选项里可以设置,也可以用口令,但想不起来了。你可以查查。
    用pl/sql比较好用呀。马上就看到结果了。
      

  3.   

    --表建立
    CREATE TABLE "UNAME"."student"("ID" NUMBER(10) NOT NULL, "NAME" 
        VARCHAR2(30) NOT NULL, "SEX" VARCHAR2(2) NOT NULL, "ADDRESS" 
        VARCHAR2(50) NOT NULL, "POSTCODE" VARCHAR2(10) NOT NULL, 
        "BIRTHDAY" VARCHAR2(20) NOT NULL) 
        TABLESPACE "SPNAME" ;CREATE TABLE student("ID" NUMBER(10) NOT NULL, "NAME" 
        VARCHAR2(30) NOT NULL, "SEX" VARCHAR2(2) NOT NULL, "ADDRESS" 
        VARCHAR2(50) NOT NULL, "POSTCODE" VARCHAR2(10) NOT NULL, 
        "BIRTHDAY" VARCHAR2(20) NOT NULL) --过程建立  CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;   PROCEDURE get (p_id NUMBER, p_rc OUT myrctype);
    END pkg_test;
    /CREATE OR REPLACE PACKAGE BODY pkg_test
    AS
       PROCEDURE get (p_id NUMBER, p_rc OUT myrctype)
       IS
          sqlstr   VARCHAR2 (500);
       BEGIN
          IF p_id = 0 THEN
             OPEN p_rc FOR
                SELECT ID, NAME, sex, address, postcode, birthday
                  FROM student;
          ELSE
             sqlstr :=
                'select id,name,sex,address,postcode,birthday
               from student where id=:w_id';
             OPEN p_rc FOR sqlstr USING p_id;
          END IF;
       END get;
    END pkg_test;
    /
    过程正确但无法调用!