問題タブ [db2-zos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - FETCH FIRST N ROWS が WITH ステートメントと組み合わせて機能しないのはなぜですか?
DB2 データベースで実行されない次の SQL ステートメントがあります。
FETCHステートメントがなくても機能します。私が得るエラーメッセージは次のとおりです。
キーワード OPTIMIZE、トークン ERR_STMT WNG_STMT GET SQL SAVEPOINT HOLD FREE ASSOCIATE の不正使用が予期されていました。
助言がありますか?
sql - 数値リテラルの場合は Integer または Smallint
次のクエリの結果は私を苛立たせます:
最初の選択の戻り値は、明らかに型 decimal(11,0) です。合体関数の型の統一については、こちらに記載されています(数値オペランドを参照)。これらの指示に従い、decimal(11,0) を逆方向に解決すると、リテラル1 は大きな整数として解釈されます。
2 番目の選択の戻り値の型は decimal(7,0) です。乗算に対する DB2 の動作については、こちらを参照してください(結果の精度は、両方のオペランドの精度の合計です)。この場合、これはリテラル1 が small integer として解釈されることを意味します。
このchar(..)
関数は、戻り値の精度と位取りを示すためにのみ適用されていることに注意してください。
(上記の例のように) 整数リテラルがある場合1
、DB2 がそれをどのように解釈するか (smallint、largeint、bigint) を知るにはどうすればよいですか?
DB2 for z/OS v11 を使用しています。
sql - SQL を使用する IBM DB2 Z/OS のテーブルに対する現在の権限を表示する方法
DB2 Z/OS のテーブルまたはビューに存在する特権を表示する SQL の方法はありますか? 私はこのようなことを達成したいと思います:
それは可能ですか?
xml - 複数のレベルでグループ化された xml としてテーブルから選択
DB2 for z/OS V10 を使用しています。
次の例のように、複数のレベルでデータをグループ化して、DB2 テーブルから直接 XML にデータを選択する必要があります。
上記の列はすべて、同じリレーショナル テーブルの一部です。私が見つけたすべての例は、最大のみでした。1 つの group by 句で、より複雑なクエリを作成する方法がわかりません。誰か助けてくれませんか?
db2 - Cobol-db2 バインド プロセス
db2 バインド プロセスに関して質問があります。SQL クエリは、バインド プロセス後にいずれかのカタログ テーブルに格納されますか? ジョブを送信する直前に dbrm が削除された場合、後で cobol-db2 プログラムを実行できますか?
sql - クエリの実行時にエラー -4700 (新しい関数モードを使用しようとしています) が表示されるのはなぜですか?
SPUFI で次のようにクエリを実行してみました。
返されるエラーは次のとおりです。
sqlcode = -4700、エラー: 新機能モードの前に新機能を使用しようとしました。
DB2 for z/OS バージョン 9 を実行しています。
java - CICS 上の WAS Liberty でのアプリケーション始動時に DB2 に接続する Hibernate
Hibernate を持続性プロバイダーとして使用する WebSphere Liberty で単純な webapp を実行しています (WAR ファイルにライブラリーとして含まれています)。
アプリケーションが起動すると、Hibernate が初期化され、DB2 への接続が開かれ、いくつかの SQL ステートメントが発行されます。ただし、CICS で実行し、JDBC Type 2 Driver DataSource を使用すると、これは失敗します。次のメッセージがログに記録されます (読みやすいように改行が追加されています)。
私の現在の理解では、CICS で実行し、JDBC Type 2 ドライバーを使用する場合、一部のスレッドのみが DB2 接続を開くことができます。それは、アプリケーション スレッド (HTTP 要求を処理するスレッド) と、サービスを提供するワーカー スレッドCICSExecutorService
です。
現在の解決策は次のとおりです。
- プロパティを に
JdbcEnvironmentInitiator
設定して、JDBC メタデータ ルックアップを無効にします。hibernate.temp.use_jdbc_metadata_defaults
false
- の実行を にラップ
IdTableHelper#executeIdTableCreationStatements
し、Runnable
に送信しCICSExecutorService
ます。
このソリューションは、本番環境に十分かつ適していると思いますか? それとも、別のアプローチを使用していますか?
使用したバージョン:
- z/OS 5.3.0 用の CICS トランザクション サーバー
- WebSphere アプリケーション サーバー 8.5.5.8
- 休止状態 5.1.0
更新:明確にするために、アプリケーションが開始されると、問題なく DB2 を照会できます (HTTP 要求を処理する場合)。問題は起動にのみ関連しています。