問題タブ [iseries-navigator]
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 - 外部キーが親テーブルを参照している場合、親テーブルに一致する主キーまたは一意キーがないのはなぜですか?
そのため、テーブルの外部キーが前のテーブルを正しく参照していないというこの問題が発生しています。私はIBM i用のDB2でコーディングしています(SCHEMAの代わりにCOLLECTIONSが使用されている古い言語を使用しています----私の大学のカリキュラムの一部です)
正確なエラー メッセージは次のとおりです。
SQL 状態: 42890 ベンダー コード: -573 メッセージ: [SQL0573] UMALIK5 のテーブル EMPLOYEE には、一致する親キーがありません。原因 。. . . . : UMALIK5 の制約 CAMPUS_FK の FOREIGN KEY 句に参照列リストが指定されました。UMALIK5 の親テーブル EMPLOYEE には、一致する PRIMARY キーまたは UNIQUE キーがありません。ファイルが分割されている場合、親ファイルのアクセス パスは分割されていない必要があります。制約を追加できません。回復 。. . 処置: 次のいずれかを実行して、リクエストを再試行してください: -- FOREIGN KEY句に、参照列リストと一致するPRIMARYキーまたはUNIQUEキーを持つ表を指定してください。-- 親テーブルで定義された PRIMARY キーまたは UNIQUE キーの定義と一致するように、参照列リストを変更します。-- 親ファイルが分割されている場合は、分割されていないアクセスパスを追加してください。
IBM のサポート ページで調べたエラーは、これよりもさらにわかりにくいものでした。
これが私のコードです:
DB2 スクリプトを実行すると、テーブル Employee は問題なく作成されますが、何らかの理由で CAMPUS テーブルは作成されません。
私は何を間違っていますか?
ご協力ありがとうございました。
sql - SQL - 1 つの共通フィールドを持つ 2 つのテーブルをマージする
私は検索して検索しましたが、探しているものを見つけることができません。SQLに関しては、私は完全に無能ではありませんが、これは私を超えています。
したがって、1 つの共通フィールドを持つ 2 つのテーブルがあります。
表 - LName
フィールド名
表 - 説明
フィールド名
フィールド フィールド追加
ジョブ
これで、テーブル LName にはフィールドが 1 つだけあり、データが入力されます。
テーブルの説明には、「名前」フィールドを除くすべてのフィールドにデータがあります。
テーブル LName のフィールド 'Name' のデータをテーブル Description のフィールド 'Name' に入れる必要があります。
それか、両方のテーブルを 1 つのテーブル (File3) にマージします。このテーブルには、すべてのフィールドがありますが、データはありません。
どんな助けにも感謝します。
バリー
更新 2: 必要な機能を備えた論理ファイルを作成できましたが、レコードは 1 つしか返されません。
SQL:
クエリの出力
そこで、この SQL ステートメントが 28 のレコードすべてを読み取る方法を考え出す必要があります。
バリー
mysql - iSeries / IBMDB2I 上の MySQL テーブル
zendDBi データベースを使用しており、既存の DB2 テーブルから MySQL テーブルをセットアップしようとしています。ここにある方法を使用: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (近くの「既存の IBM i DB2 テーブル」というタイトルのセクションにあります)ページの一番下)。
これはほとんどのテーブルで機能しますが、特に 1 つのテーブルでは機能していないようです。
MySQL テーブルを作成して FRM ファイルをコピーすることはできますが、mysql 経由でテーブルにアクセスしようとすると、IBMDB2I から「エラー 2102 'ファイルが変更されたため、MySQL テーブル定義と互換性がない可能性があります」というエラーが表示されます。 」</p>
ここで同様の記事を読みました: http://forums.zend.com/viewtopic.php?f=77&t=104778
ただし、FID ファイルは作成されません。(これは別のテーブルで機能しました)。これが私がこれまでに試したことです:
- mysql frm ファイルのファイル権限を確認しました
- DB2 テーブルの権限を確認しました
- MySQL で「テーブルをフラッシュ」コマンドを使用する
- 正しい識別番号で FID ファイルを手動で作成する
- my.conf で IBMDB2I をデフォルトのエンジンとして設定する
- テーブルにゾーン 10 進数フィールドが含まれていないことを確認する
次は何に挑戦しようか、興味津々です。
以下は、iSeries ナビゲーターからの元のテーブルの SQL 作成ステートメントです。ご覧のとおり、データ型は 2 つしかありません。
問題があるかどうかはわかりませんが、問題を抱えているテーブルは古い OS で作成されたものです。現在、7.1 を使用していますが、これらのテーブルは v3r2 または v5r4 で作成された可能性があります。多分何かが欠けているのでしょうか?
variables - IBM iSeries ナビゲーターの「SQL スクリプトの実行」ユーティリティーを使用して変数を宣言する
iSeries Navigator、IBM iSeries Access for Windows バージョン 5 リリース 4、「Run SQL Scripts」ユーティリティを使用して、IBM DB2 を初めて使用します。
このユーティリティで変数を使用することはできますか? 多くのスタック オーバーフローの回答 (および他のフォーラムの回答) では、次のようなコードを使用するように指示されています。
これは「SQL スクリプトの実行」ユーティリティ内では機能せず、「Token ATOMIC was not valid」という例外がスローされます。キーワード ATOMIC を削除すると、「トークン X は無効でした」というエラーが表示されます。BEGIN 行と END 行全体を削除すると、「Token VARCHAR was not valid.」というエラーが表示されます。
別の回答セットでは、次のようなコードを使用するように指示されていますが、これも同じ「...無効」エラーで失敗します。
「SQL スクリプトの実行」ユーティリティで変数を宣言することは可能ですか?
.net - SQL0469 IN、OUT、または INOUT は、プロシージャーのパラメーター 2 には無効です
AS400 を実行している IBM iSeries に対してストアド プロシージャを実行しようとすると、タイトルに上記のエラーが表示されます。
System iNavigator ツールからストアド プロシージャを実行するために次のように入力すると、問題なく実行されます。
最初のパラメーター方向はストアド プロシージャで入力として定義され、2 番目のパラメーターは出力として定義され、3 番目は出力として定義されます。
問題は、パラメータを設定する .Net コードからストアド プロシージャを実行しようとしたときです。誰か助けてくれませんか?
私のパラメータリストは次のように設定されています:
解像度
コマンドテキストを次のように宣言する必要がありました。
パラメータを次のように設定する必要がありました。
ibm-midrange - c# を使用して AS400 でジョブ リストを取得する方法
最近、AS400 にアクセスして夜間のバッチ ジョブを監視し、実行されたすべてのジョブと詳細を示す日次レポートを作成する必要があります。
AS400 コンソールで、「DSPMSG」コマンドを入力して取得できます。
IBM System i Access for Windows では、「System i ナビゲーター」を開き、「基本操作 - メッセージ」でこれらの情報を取得できます。
しかし、C# を使用してこれらの情報を取得する方法がわかりません。
ibm-midrange - IBM Power System のデバイス TAP01 でロード障害が発生しました
Ultrium 5 タイプのテープに問題があります。このテープでは、システム上のシステムから毎日バックアップを取得できませんというメッセージが表示され、次のように表示されます。
デバイス tap01 でロード エラーが発生しました。
IBM サーバーから取り出せず、IBM サーバー マシンのテープ部分の上の小さな画面に数字 (6 と !) が表示されます。
sql - SQL および IBMDASQL
一連のファイルをクエリしようとしています。15 のうち、クエリを実行する必要があるのは 3 つです。メッセージ 7314、レベル 16、状態 1、行 1 リンク サーバー "サーバー名" の OLE DB プロバイダー "IBMDASQL" には、テーブル "system. lib.file". テーブルが存在しないか、現在のユーザーがそのテーブルに対する権限を持っていません。
私は SQL を使用しており、IBMDASQL ドライバーを使用してリンク サーバーを作成しました。
私が言ったように、15 個のファイルのうち 3 個のファイルだけがこの問題を引き起こしています。
ファイルに対して wrkobj を実行すると、パブリックにすべてのアクセス許可があることがわかり、念のため特定のユーザー アカウントを追加しました。
基本的な ODBC と Microsoft クエリを使用して接続すると、リストにファイルが表示されません。iSeries に直接ログインすると、ファイルを表示して操作できます。.
現在、代替ファイル名を使用しています。しかし、挿入エラーが発生します。尋ねられたように、ここにコードがあり、正確なエラーの下にあります。
エラー メッセージ: リンク サーバー "PARKWAY-TRAIN" の OLE DB プロバイダー "IBMDASQL" がメッセージ "SQL0104: トークン . が無効でした。 有効なトークン: . 原因 . . . . : トークン .. トークンで構文エラーが検出されました. は有効なトークンではありません. 有効なトークンの部分的なリストは です. このリストは、ステートメントがトークンまで正しいことを前提としています. エラーはステートメントの前にある可能性がありますが、ステートメントの構文はこれまで有効であるように見えます. point. リカバリ . . . : 次のうち 1 つ以上を実行し、要求を再試行してください: -- トークンの領域にある SQL ステートメントを確認してください.. ステートメントを修正してください. エラーは、コンマまたは引用符が欠落している可能性があります。単語のつづりが間違っているか、句の順序に関連している可能性があります。 -- エラー トークンが の場合、有効な句で終わっていないため、SQL ステートメントを修正してください。". メッセージ 7343、レベル 16、状態 2、行 1 リンク サーバー "PARKWAY-TRAIN" の OLE DB プロバイダー "IBMDASQL" could not INSERT INTO table "[PARKWAY -TRAIN].[S60017].[ORDERF912].[NC_NURS_ORD_REF]".
コードの Select 部分だけを実行すると、正確には 503 行が返されます。コードの挿入部分をスローした場合にのみ失敗します。
IBM は、トークンを修正するように言います。ただし、どのトークンを修正するのが間違っているかについての手がかりはありません。