oracle动态sql

9 篇文章 1 订阅
CREATE OR REPLACE 
PROCEDURE proc_monitor_detail
--查询考试安排详细 examName,BeginTime,addTime,Address,Course_Name


(
  v_examID IN NUMBER DEFAULT NULL ,
  v_examName OUT VARCHAR2,
  v_beginTime OUT VARCHAR2,
  v_addTime OUT VARCHAR2,
  v_Address OUT VARCHAR2,
  v_courseName OUT VARCHAR2,
  v_paperTitle OUT VARCHAR2,
  v_paperTime OUT CHAR,
  v_readTeacherName OUT VARCHAR2
)
AS
   v_courseCode CHAR(3);
   v_readTeacherID VARCHAR2(50);
   v_paperID NUMBER(10,0);
   v_table_spec VARCHAR2(500);
   v_table_name CHAR(5);


BEGIN


   SELECT PaperID ,
          ExamArrangement.CourseCode ,
          ExamName ,
          BeginTime ,
          addTime ,
          ADDRESS ,
          Course_Name ,
          UserInfo.Name 


     INTO v_paperID,
          v_courseCode,
          v_examName,
          v_beginTime,
          v_addTime,
          v_Address,
          v_courseName,
          v_readTeacherName
     FROM ExamArrangement ,
          CourseInfo ,
          UserInfo 
     WHERE ExamID = v_examID
             AND ExamArrangement.CourseCode = CourseInfo.Course_Code
             AND ExamArrangement.ReadTeacherID = UserInfo.UserID;
   v_table_name := 'SJ' || v_courseCode ;
v_table_spec := 'select Time from ' || v_table_name || ' where PaperID='||v_paperID; 
--DBMS_OUTPUT.PUT_LINE(v_table_spec);
execute immediate v_table_spec  INTO v_paperTime;
v_table_spec := 'select Title  from ' || v_table_name || ' where PaperID='||v_paperID;
execute immediate v_table_spec  INTO v_paperTitle;
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值