主頁 > 資料庫 > 求大神幫助看一下這個存盤程序哪塊有問題,為什么編譯不過去呢?

求大神幫助看一下這個存盤程序哪塊有問題,為什么編譯不過去呢?

2020-09-15 06:03:53 資料庫

create or replace procedure peis_sign(TASKID_IN in Varchar2) as
   n_登記ID Number(18);
   n_人員ID Number(18);
   v_操作員姓名 varchar2(20);
   v_簽到批次 Varchar2(10);
   v_計費批次 Varchar2(10);
   V_發送批次 Varchar2(10);
   n_任務id Number(18);
   n_發送號 Number(18);
   v_姓名 Varchar2(100);
   v_性別 Varchar2(10);
   v_年齡 Varchar2(10);
   v_年齡數字 Varchar2(10);
   v_組合id  Varchar2(10);
   v_申請人  Varchar2(100);
   d_申請時間 date;
   v_申請科室  Varchar2(50);
   v_健康號 VARCHAR2(50);
   v_病人科室 VARCHAR2(50);
   v_掛號單 VARCHAR2(8);
   n_門診號 NUMBER(18);
   d_出生日期 date;
   V_病區  VARCHAR2(100);
   V_病區編碼 VARCHAR2(10);
   v_樣本條碼 VARCHAR2(18);
   n_計費狀態 NUMBER(3);
begin
  select 姓名 into v_操作員姓名 from 上機人員表 s, 人員表 r where s.人員id=r.id and s.用戶名=user;
  select nextno(160) into v_簽到批次 from dual;
  select 任務登記id,登記記錄ID, 體檢人員ID into n_任務id,n_登記ID,n_人員ID from 體檢分組人員 r where r.體檢編號=TASKID_IN;
  zl_體檢分組人員_sign(n_登記ID, n_人員ID, v_操作員姓名, sysdate, v_簽到批次);
  Select NextNO('153','0','','1') into v_計費批次 From Dual;
  zl_體檢人員專案_Billing(n_任務id||','||n_人員ID,v_計費批次,'1');
  zl_體檢人員費用_Insert(v_計費批次,'0');
  
  for c in (Select a.任務登記id,a.體檢人員id,a.體檢人員id As 病人id,a.登記專案id, a.體檢專案id,a.計價方式, 序號, a.從屬父號,a.價格父號,a.加班標志,a.附加標志,a.付數,a.操作員姓名, a.操作員編號, 
       a.收費類別, a.計算單位, a.收費細目id, a.收費專案id, a.收入專案id,a.收據費目, a.收費專案, a.時價, a.分批, a.可否分零, a.劑量系數, 
       a.應收金額, a.實收金額, a.標準金額, a.體檢金額, a.數次, a.醫囑id,a.門診號, a.姓名, a.性別, a.年齡, a.費別, a.費用單據, a.費用物件, a.費用性質, a.記錄性質, 
       a.體檢部門id, a.開單部門id, a.開單人, a.執行科室, a.執行科室id,a.執行科室id As 執行部門id, round(nvl(a.標準單價,0), 2 ) as 單價, a.登記時間, a.病人科室id, 發生時間,'' As 劃價人  
From ( 
      Select RowNum As 序號, Null As 從屬父號,Null As 價格父號,0 As 加班標志,0 as 附加標志,1 as 付數, A.發送人員 as 操作員姓名,'zlhis' as 操作員編號,A.任務登記id, A.登記專案id, A.體檢專案id, A.收費類別, A.計算單位, 
             A.收費專案id as 收費細目ID,A.收費專案id,A.收入專案id ,a.收據費目,A.收費專案, A.時價, A.分批, A.可否分零, 
             A.劑量系數, A.執行科室id, 0 As 應收金額, 0 As 實收金額, A.標準金額, A.體檢金額, A.數次, A.醫囑id, A.體檢人員id, A.姓名, A.性別, a.門診號,
             A.年齡, A.費別, A.費用單據, A.費用物件, A.費用性質, A.記錄性質, A.體檢部門id, A.開單科室id as 開單部門id, A.開單醫生 as 開單人, 
             B.名稱 As 執行科室,A.標準單價,A.登記時間,A.體檢部門id As 病人科室id,Sysdate As 發生時間,A.計價方式  
      From (Select C.任務登記id, C.體檢人員id, E.登記專案ID, C.體檢專案id, K.計價方式,D.類別 As 收費類別, D.計算單位, A.收費專案id, D.名稱 As 收費專案, 
       Nvl(D.是否變價, 0) As 時價, Nvl(Decode(D.類別, '4', I.在用分批, H.藥房分批), 0) As 分批, H.門診可否分零 as 可否分零, 
       H.劑量系數, Decode(A.執行科室id, B.執行科室id, C.執行科室id, A.執行科室id) As 執行科室id, 
       A.體檢金額, 
       Nvl(A.收費數次, 1) As 數次, 
       Decode(D.是否變價, 1, A.體檢金額, Z.現價) as 標準單價, Z.現價*Nvl(A.收費數次, 1) As 標準金額, 
       Decode(E.費用物件, 1, C.醫囑記錄id, C.采集醫囑id) As 醫囑id,  F.姓名, 
       f.門診號,F.性別, F.年齡, F.費別, E.費用單據, E.費用物件, E.費用性質, E.記錄性質, G.體檢部門id, B.開單科室id, B.開單醫生,  Sysdate As 登記時間,Z.收入專案ID,Q.收據費目,C.發送人員  
From 體檢分組計價 A, 
     體檢分組專案 B, 
     體檢人員專案 C, 
     收費專案目錄 D, 
     病人資訊 F, 
     (       Select Distinct x.費用單據, x.費用物件, x.費用性質, x.記錄性質, y.Id As 人員專案id,y.登記專案ID, x.專案物件 
       From 體檢人員專案 Y, 體檢人員費用 X 
       Where y.計費批次 =v_計費批次 And x.人員專案id = y.Id and X.專案物件=1 
       Union  
       Select Distinct x.費用單據, x.費用物件, x.費用性質, x.記錄性質, y.Id As 人員專案id,Z.ID as 登記專案ID, x.專案物件 
       From 體檢人員專案 Y, 體檢人員費用 X,體檢分組專案 Z 
       Where y.計費批次 =v_計費批次 And x.人員專案id = y.Id and (Y.登記專案id=Z.相關id Or Y.登記專案id=Z.id) and Y.體檢人員id=Z.體檢人員id And Z.是否職業=1 and X.專案物件=2 
     ) E, 
     體檢任務登記 G,體檢分組記錄 K, 
     藥品規格 H, 
     材料特性 I, 
     收費價目 Z,
     收入專案 Q    Where C.計費批次 =v_計費批次  AND Z.收入專案id = Q.ID AND (Q.撤檔時間 is Null Or Q.撤檔時間 > Sysdate) 
                   And A.登記專案id = B.Id  
                   And B.Id=E.登記專案ID   
                   And C.Id = E.人員專案id  
                   And D.ID =A.收費專案id 
                   And D.ID =Z.收費細目ID 
                   And z.執行日期 <= Sysdate  And (Z.終止日期 Is Null Or Z.終止日期 > Sysdate) 
                   And G.ID = B.任務登記id 
                   And C.體檢人員id = F.病人id 
                   And H.藥品id(+) = D.ID 
                   And I.材料id(+) = D.ID 
                   And K.ID=B.登記記錄id  
                   And A.收費物件 = E.費用物件 And Z.價格等級 is Null              Order By C.任務登記id,C.體檢人員id,C.登記專案id,A.檢查部位,A.收費專案id, Nvl(Z.序號,0) 
        ) A, 
        部門表 B 
Where A.執行科室id = B.ID(+) 
/*  and (a.費用單據,a.記錄性質) not in (Select b.費用單據, b.記錄性質 
From 體檢人員專案 A, 體檢人員費用 B, 門診費用記錄 C 
Where a.計費批次 =v_計費批次 And a.Id = b.人員專案id And b.費用單據 = c.No And b.記錄性質 = c.記錄性質) */
) A Order by a.任務登記id,a.體檢人員id,a.登記專案id,a.記錄性質,a.費用單據,a.收費專案id  )  loop

   Zl_門診記帳記錄_Insert(c.費用單據,c.序號,c.病人id,c.門診號,c.姓名,c.性別,c.年齡,c.費別,'','',c.病人科室id,c.開單部門id,c.開單人,'',c.收費專案,c.收費類別,
   c.計算單位,c.付數,c.數次,c.附加標志,c.執行科室id,c.價格父號,c.收入專案id,c.收據費目,c.單價,c.應收金額,c.實收金額,c.發生時間,c.登記時間,'','0',c.操作員編號,c.操作員姓名,
   '','','','','','','4');
   Select max(m.發送批次),max(n.發送號) into V_發送批次,n_發送號 From 體檢人員專案 m,病人醫囑發送 n Where m.醫囑記錄id = n.醫囑id and m.任務登記id=n_任務id And m.體檢人員id=n_人員ID;
   zl_體檢人員專案_Send(n_登記ID,n_人員ID,c.登記專案id,c.操作員姓名,sysdate,V_發送批次,n_發送號); 
     end loop;
     
for z in ( Select a.醫囑記錄id,a.采集醫囑id,a.檢驗標本,b.編碼 As 執行科室編碼,d.名稱 as 采集方式,e.名稱 as 采集科室,
  f.費別,Sum(f.應收金額) As 應收金額,Sum(Decode(f.記錄狀態, 1, f.實收金額, 0)) as 實收金額
From 體檢人員專案 a,部門表 b,病人醫囑記錄 c,診療專案目錄 d,部門表 e,門診費用記錄 f 
Where c.id =a.采集醫囑id and c.診療專案id = d.id and c.執行科室id = e.id and a.執行科室id = b.Id and f.醫囑序號 = a.醫囑記錄id and f.執行狀態<>'9'
And a.醫囑記錄id Is Not Null And a.采集醫囑id Is Not Null And a.任務登記id = n_任務id /*And a.發送批次 = V_發送批次*/ and a.體檢人員id=n_人員ID  
 group by a.醫囑記錄id,a.采集醫囑id,a.檢驗標本,b.編碼,d.名稱,e.名稱,f.費別 ) loop
  
Select C.姓名 into v_姓名,decode(C.性別,'男','1','女','2','未知','9','0') into v_性別,a.年齡 into v_年齡,substr(a.年齡,1,instr(a.年齡,'歲','1','1')-1) into v_年齡數字,
       A.開囑醫生 into v_申請人,A.開囑時間 into d_申請時間, D.名稱 into v_申請科室,  
       C.健康號 into v_健康號, E.名稱 into v_病人科室, A.掛號單 into v_掛號單, C.門診號 into n_門診號, C.出生日期 into d_出生日期,  
       b.樣本條碼 into v_樣本條碼,b.計費狀態 into n_計費狀態,g.編碼 into V_病區編碼,g.名稱 into v_病區,m.id into v_組合id  
  From 病人醫囑記錄 A, 病人醫囑發送 B, 病人資訊 C, 部門表 D, 部門表 E,診療專案目錄 F,部門表 g,病案主頁 s,檢驗組合專案 m   
  Where A.Id = B.醫囑id And A.病人id = C.病人id And A.開囑科室id = D.Id And A.病人科室id = E.Id and a.診療專案id = f.id and a.病人id= s.病人id(+) and a.主頁id = s.主頁id(+) 
  and c.當前病區ID = g.id(+) and m.編碼 = f.編碼 and a.id = z.醫囑記錄id;
   
  Zl_檢驗申請單_Insert(z.采集醫囑id,z.醫囑記錄id,'4',n_人員ID,'0',v_姓名,v_性別,v_年齡,v_年齡數字,'歲',v_組合id,z.檢驗標本,v_申請人,d_申請時間,v_申請科室,'',v_健康號,v_病人科室,'0',v_掛號單,n_門診號,'',d_出生日期,'','',Null,'',Null,'',Null,n_計費狀態,'','',v_病區,V_病區編碼,'','',v_樣本條碼,z.采集方式,z.采集科室,z.應收金額,z.實收金額,z.費別,'','','','','',''); 

end loop;

end;

uj5u.com熱心網友回復:

編譯的時候有沒有什么提示啊 

uj5u.com熱心網友回復:

我看你這個procedure主體是2個for loop,就是關聯比較多,可以把每個loop里面的sql單獨拿出來執行下。

uj5u.com熱心網友回復:

編譯不通過 沒有啥提示么?

uj5u.com熱心網友回復:

把報錯提示發出來,報錯后的下滑紅線截圖

uj5u.com熱心網友回復:

小小建議:改寫成insert /*+ append */ +表關聯吧;
隱式游標,看著就頭大
出錯,還不容易糾正,很麻煩

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/43198.html

標籤:開發

上一篇:oracle 匯出中文亂碼

下一篇:select len(代碼),* from jztgx2018 系統提示缺失運算式???

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more