oracle中使用触发器实现查询分页功能
oracle包分为包规范和包体 一:首先创建包规范 create or replace package p_pagewithgroup is -- Author : 肖伟 -- Created : 2014/3/18 -- Purpose : 分组分页过程 TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集 PROCEDURE UP_GetRecordWith
oracle包分为包规范和包体
一:首先创建包规范
create or replace package p_pagewithgroup is
-- Author : 肖伟
-- Created : 2014/3/18
-- Purpose : 分组分页过程
TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集
PROCEDURE UP_GetRecordWithGroupByPage(
tblName in varchar2, --表名
PageSize in number, --页面大小
PageIndex in number, --当前页
IsReCount out number,--返回总条数
strWhere in varchar2,-- 查询条件 (注意: 不要加 where)
strColums in varchar2, --字段集合,逗号分割
strSelectColums in varchar2, --字段集合,逗号分割
strGroup in varchar2,--分组条件语句
strOrder in varchar2,-- 排序条件语句
v_cur out type_cur --返回当前页数据记录
);
end p_pagewithgroup;
二:创建包结构体
create or replace package body p_pagewithgroup is
PROCEDURE UP_GetRecordWithGroupByPage(
tblName in varchar2, --表名
PageSize in number, --页面大小
PageIndex in number, --当前页
IsReCount out number,--返回总条数
strWhere in varchar2,-- 查询条件 (注意: 不要加 where)
strColums in varchar2, --字段集合,逗号分割
strSelectColums in varchar2, --字段集合,逗号分割
strGroup in varchar2,--分组条件语句
strOrder in varchar2,-- 排序条件语句
v_cur out type_cur --返回当前页数据记录
)
AS
--定义变量
v_sql VARCHAR2(8000);
v_count number;
v_row_start NUMBER; --开始记录
v_row_end NUMBER; --结束记录
begin
------------------------------------------------------------显示总条数
v_sql := 'select count(1) from ' || tblName;
IF strWhere is not NULL OR strWhere ''
THEN
v_sql := v_sql || ' where ' || strWhere;
END IF;
IF strGroup is not null or strGroup ''
then
v_sql := v_sql || ' group by ' || strGroup;
end if;
DBMS_OUTPUT.put_line (v_sql);
--v_sql:='select count(1) from BS_USER where 1=1';
EXECUTE IMMEDIATE v_sql into v_count ;
IsReCount:=v_count;
------------------------------------------------------------显示任意页内容
-- IF PageSize
-- PageSize:=1;
-- END IF;
v_row_start := (PageIndex - 1) * PageSize + 1;
v_row_end := PageIndex * PageSize;
v_sql:='select '||strSelectColums||' from (select t.*,RowNum as rn from (select '||strColums||' from '||tblName;
IF strWhere is not NULL OR strWhere ''
THEN
v_sql := v_sql || ' where ' || strWhere;
END IF;
IF strGroup is not null or strGroup ''
then
v_sql := v_sql || ' group by ' || strGroup;
end if;
IF strOrder is not null or strOrder ''
then
v_sql := v_sql || ' order by ' || strOrder;
end if;
v_sql := v_sql ||') t) where rn between '||v_row_start||' and '||v_row_end;
DBMS_OUTPUT.put_line (v_sql);
open v_cur for v_sql;
End UP_GetRecordWithGroupByPage;
----------------------------------------------------------
end p_pagewithgroup;
三:测试
首先打开PL/SQL command window
SQL>declare
-- Local variables here
IsReCount number;--返回总条数
my_cur p_pagewithgroup.type_cur ; --返回当前页数据记录
begin
-- Test statements here
p_pagewithgroup.UP_GetRecordWithGroupByPage('T_DIVISION',5,1,ISReCount,' 1=1 ',' * ',' * ',null,null,my_cur );
DBMS_OUTPUT.PUT_LINE(TO_CHAR(IsReCount));
end;
,
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









今回は、Redstone Token $ RedがBinance LaunchPoolでBinance TGEで発売されます!また、Binanceが市場前の取引制限メカニズムを開始したのはこれも初めてです!初日の制限は200%であり、「市場が開くとピークが達成される」を避けるために、3日後に禁止が解除されます! LaunchPoolメカニズムは、指定されたトークン(BNB、USDC、FDUSD、FDUSD)アクティビティ期間を誓約する必要があるRedstoneに参加するBinancelAunchpoolを紹介します。

Debianシステム上のOracleデータベースのセキュリティを強化するには、開始するには多くの側面が必要です。次の手順は、セキュアな構成のフレームワークを提供します。1。Oracleデータベースのインストールと初期構成システムの準備:Debianシステムが最新バージョンに更新され、ネットワーク構成が正しく、必要なすべてのソフトウェアパッケージがインストールされていることを確認します。インストールのために公式文書または信頼できるサードパーティのリソースを参照することをお勧めします。ユーザーとグループ:専用のOracleユーザーグループ(OINSTALL、DBA、BackUpDBAなど)を作成し、適切なアクセス許可を設定します。 2。セキュリティ制限リソース制限の設定:edit /etc/security/limits.d/30-oracle.conf

Binance Dual Currency Financial Management:詳細な分析と運用ガイドこの記事は、バイナンスの二重投資の運用メカニズム、リスク、利点に関する詳細な議論を行い、詳細な運用手順を提供します。デュアル通貨ウェルスマネジメントは、オプション販売者の戦略と同様に、高リスクの高収量投資戦略であり、初心者は慎重に運用する必要があります。バイナンスデュアル通貨財務管理とは何ですか? Binance Dual Currency Financial Managementは、Binance Exchangeが提供する財務管理製品であり、ユーザーは将来の特定の日付でプリセット価格で暗号通貨を売買して債券を獲得できますが、価格の変動のリスクを負う必要があります。 「デュアル通貨」とは、暗号通貨と安定性を含むトランザクションを指します。現在、Binanceはさまざまな暗号通貨をサポートして、二重通貨財務管理に参加しています。債券を獲得することはできますが、それは保証された投資ではなく、損失や大きな損失の可能性があります。

Powertoysは、Windowsユーザーの生産性とシステム制御を強化するために、Microsoftが開始したツールの無料コレクションです。ファンシーゾーン管理ウィンドウレイアウトやパワーネームバッチの名前変更ファイルなどのスタンドアロンモジュールを介して機能を提供し、ユーザーワークフローをスムーズにします。

GOを使用してOracleデータベースに接続するときにOracleクライアントをインストールする必要がありますか? GOで開発するとき、Oracleデータベースに接続することは一般的な要件です...

OraclePl/SQLの手順、機能、パッケージは、それぞれ操作、返品値、および整理コードを実行するために使用されます。 1.プロセスは、挨拶の出力などの操作を実行するために使用されます。 2。関数は、2つの数値の合計を計算するなど、値を計算して返すために使用されます。 3.パッケージは、関連する要素を整理し、在庫を管理するパッケージなど、コードのモジュール性と保守性を向上させるために使用されます。

Redstone(Red)Airdropアクティビティは本格的であり、多くの投資家が参加するようになっています。 Redstoneは、強力なバリデーターネットワーク、リアルタイムデータ統合機能、コミュニティインセンティブメカニズムを備えた高度なクロスチェーンデータのOracleであり、多くの有名な投資機関によってサポートされています。そのユニークな技術的利点は、非常に競争の激しいオラクル市場で際立っており、将来の開発の大きな可能性を秘めています。この記事では、レッドストーンプロジェクトの詳細な分析を実施し、エアドロップに参加できるレッドトークンの数を調査し、レッドトークンの価格を見通し、投資家がレッドストーンプロジェクトと投資のリスクをよりよく理解し、評価します。 特にBNB所有者にとって、エアドロップに参加すると、赤いトークンを入手し、デジタル資産グループを豊かにする機会があります

ERPソフトウェアを選択するときは、最初に業界、スケール、予算、ITインフラストラクチャなどの企業のニーズを明確にし、コアビジネスプロセスに従ってニーズを満たすシステムを選択します。一般的なERPシステムには次のものが含まれます。SAPは大規模な企業に適しており、強力な機能を備えていますが、高価な機能を備えています。 Oracleには包括的な機能がありますが、高価で、大企業に適しています。 ODOOは、中小企業に適しており、低コストでカスタマイズ可能です。 SaaS ERPはクラウドに展開され、オンデマンドで支払い、急速に発展している企業に適しています。選択する前に、トライアルを実施し、専門家のアドバイスに相談し、アフターセールスサービスに注意を払い、あなたに最も適したERPシステムを選択する必要があります。
