我想根据用户给出的输入生成患者详细信息报告(输入应该是">"、"<"、"="等运算符)

  • 本文关键字:运算符 报告 用户 详细信息 患者 plsql
  • 更新时间 :
  • 英文 :


//程序,根据//user 给出的输入生成患者详细信息报告

CREATE or REPLACE  procedure XX_TEAM18_PROc2
    (Admit_date in date,
    Bill_amt in number,
    action in varchar2)
    is
    cursor c 
    is 
    SELECT P.Patient_name,ph.Symptom_issue Symptom,ph.Consulted_dr Doctor,ph.Diagnosis,ph.Bill_Amount 
    FROM
    XX_Patient_Master_Team18 P,XX_Patient_History_Team18 ph
    WHERE
p.Patient_Id=ph.Patient_id
AND
bill_amount action bill_amount;
rec c%rowtype;
cursor c1
 is
SELECT P.Patient_name,ph.Symptom_issue Symptom,ph.Consulted_dr Doctor,ph.Diagnosis,ph.Admitted_date Admitted_date
FROM
XX_Patient_Master_Team18 P,XX_Patient_History_Team18 ph
WHERE
p.Patient_Id=ph.Patient_id 
AND
Admitted_date action admit_date ;
rec1 c1%rowtype;
begin
open c;
dbms_output.put_line('  records belongs to '||Bill_Amt);
fetch c into rec ;
 loop
exit when c%notfound;
dbms_output.put_line(rec.Symptom||' '||rec. Doctor||' '||rec.Diagnosis||' '||rec.bill_Amount);
end loop;
close c;
 open c1;
   dbms_output.put_line('  records belongs to given '||Admit_date);
fetch c1 into rec1 ;
loop
exit when c1%notfound;
dbms_output.put_line(rec1.Symptom||' '||rec1.Doctor||' '||rec1.Diagnosis||' '||rec1.Admitted_date);
end loop;
close c1;
end ;

您必须使用动态 SQL 作为参数action不能在 PL/SQL 中的固定 SQL 语句中使用。参数只能用作替换值,不能用作列名或运算符,除非您使用的是动态 SQL。

您需要创建一个 varchar2 变量来保存 SQL 语句,然后使用 DBMS_SQL 包创建游标。DBMS_SQL里面有很好的文档,使用完后不要忘记关闭光标。

最新更新