潤幹報表4 0裡如何呼叫oracle資料庫儲存過程

2021-06-07 15:51:10 字數 1637 閱讀 5586

報表資料集的資料來自儲存過程。sql語句執行的時候要先編譯,然後執行。報表儲存過程就是編譯好了的一些sql語句。應用程式需要用的時候直接呼叫就可以了,所以效率比較高。報表儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成複雜的判斷和複雜的運算。報表儲存過程可以返回報表結果集,可以返回報表引數,也可以同時返回報表結果集和報表引數。

報表儲存過程的引數分為輸入引數和輸出引數兩種。輸入報表引數是儲存過程執行的條件引數。輸出報表引數類似於返回值,但是輸出報表引數具有兩個重要的優勢:可以使用輸出報表引數從儲存過程傳遞出varchar,int,money或任何其他資料型別的值,而返回值則只能返回整數。輸出引數的另乙個優勢就是在乙個儲存過程中可以有多個輸出報表引數,乙個儲存過程可以包含1024個引數(其中包括輸入和輸出報表引數),但是報表只能包含乙個返回值。

在呼叫儲存過程中,其中以oracle的儲存過程較為特殊,因為oracle資料庫對於儲存過程的輸出引數有一定要求,需要設定為游標型別,下面就舉個例子:

儲存過程寫法:

create or replace package types as

type rq_ref_cursor is ref cursor;

– procedure getdata( v_temp out types.rq_ref_cursor);

end;

create or replace procedure rq_test_cur

(v_temp out types.rq_ref_cursor,

pid in varchar)as

begin

open v_temp for select name from test where id = pid;

end rq_test_cur;

– create table

create table test

(id varchar2(10) not null,

name varchar2(10)

)tablespace users

pctfree 10

initrans 1

maxtrans 255

storage

(initial 64k

minextents 1

maxextents unlimited

);– create/recreate primary, unique and foreign key constraints

alter table test

add constraint test_pk unique (id)

using index

tablespace users

pctfree 10

initrans 2

maxtrans 255

storage

(initial 64k

minextents 1

maxextents unlimited

);在報表中資料集的設定:

資料集中引數的設定:

報表引數的設定:

報表模版設計:

需要注意的是,當在單元格中用call函式呼叫儲存過程時,執行儲存過程,返回結果資料集合,只能返回單列資料,如果儲存過程返回多個字段,則返回第乙個欄位的結果值.

潤幹報表如何呼叫spring資料

spring是乙個開源框架,是為了解決企業應用程式開發複雜性而建立的。在 web 開發環境中經常會與 struts hibernate聯合起來使用,進行規範的框架結構開發。潤幹中的二次開發也可以與 ssh 框架相結合部署到 web 專案中。本文介紹在設計時沒有啟動 web 服務,在設計器中使用 sp...

如何在潤幹報表中製作分組填報表

同樣地,我們以 demo 示例庫中的雇員表資訊維護為例,在資料填報頁面,需要實現以下效果 1 雇員資訊按照地區分組顯示 2 雇員基本資訊可進行修改 效果圖如下圖所示 在製作分組填報表之前,我們先來看一下它的設計原理。原理說明 分組填報表中有兩個維度 分組維度和明細維度,如何處理兩者之間的邏輯關係是重...

潤幹報表如何使用動態xml資料集

需求描述 用xml檔案作為報表資料集的資料 並且xml檔案是程式自動生成的,每月根據日期生成xml檔案,需要能動態改變報表資料集引用的xml檔名。實現方法 潤幹報表的資料集可以通過指定的xml檔案,但是如果該xml檔案需要根據某個引數 比如月份 來動態的獲得,在定義資料集時就無法設定了。目前xml檔...