検索

クリアフィルター
記事
Mihoko Iijima · 2020年11月6日

SELECTのみを実行できるユーザ作成方法について

これはInterSystems FAQ サイトの記事です。 SELECT のみを実行できるユーザを作成するには、ユーザかロールに対してテーブルへのアクセス権限を設定することで対応できます。 設定は、管理ポータルか、GRANT 文を実行することで設定できます。GRANT 文については、以下ドキュメントもご参照ください。InterSystems SQL リファレンス - GRANT【IRIS】CachéSQLリファレンス - GRANT 管理ポータルでの設定は、ユーザまたはロールの編集画面内「SQLテーブル」タブを使用します。 ユーザに直接設定する場合は以下のメニューを利用します。  [ホーム] > [システム管理] > [セキュリティ] > [ユーザ] > [ユーザ編集] ロールに設定する場合は、以下のメニューを使用します。 [ホーム] > [システム管理] > [セキュリティ] > [ロール] > 新規ロール作成 ※ ロール名を指定し、保存するまで詳細設定画面が表示されません。 ※ 作成したロールをユーザに付与することで、テーブルへのアクセス権限をロールで一元管理できます。 SQLテーブルでの権限設定 手順は以下のとおりです。 ネームスペースを選択(例は SAMPLES を選択) テーブル追加ボタンを押下 スキーマを選択 (例は Samples を選択) 設定対象のテーブル(例は、Person )を「選択済み」に移動し権限を設定(SELECTのみにチェック) 適用ボタン押下
記事
Mihoko Iijima · 2021年7月28日

IRIS と他社のシステム統合製品との違い

これは InterSystems FAQ サイトの記事です。 一般的なシステム統合製品はメッセージエンジン製品を中心にビジネスプロセス管理製品、ポータル製品、ビジネスアクティビティモニタリング製品などの付随する製品を1つのパッケージ製品(スイート製品と呼ばれることも多い)として提供しています。 パッケージとして提供はしていますが、個々の構成製品は通常別々に作成されたもので、操作法、リポジトリ管理、開発手法、管理手法等が各製品バラバラでシステム統合プロジェクトを実施するに当たり、これら全ての製品に習熟するためには膨大な時間がかかります。 また各製品毎に担当者をアサインするということも考えられますが、そうすると各担当者間のコミュニケーションが必要となりプロジェクト管理の手間が増えます。 InterSystems IRIS data platform にはシステム統合に必要な全ての機能が1つの製品に含まれており、統一された操作法、一元化されたリポジトリ、1つの首尾一貫した開発/管理環境が提供されます。 従ってシステム統合プロジェクトを開始する際の敷居をかなり低くすることが可能です。
記事
Toshihiko Minamoto · 2022年9月14日

VSCode のTips & Tricks - Web ターミナル

VSCode から直接 Web ターミナルにアクセスしたいと思いませんか? ![](/sites/default/files/inline/images/images/image(1532).png) これは、VSCode のTips & Tricksシリーズの記事です。SOAP ウィザードに関する前の記事に非常によく似ています。 原理と結果は同じですが、ユースケースは異なります。 VSCode から Web ターミナルを開きたいと仮定します(この優れたツールをまだあまり使用できない方は、作成者 @Nikita.Savchenko7047 本人のこちらの[ホームページ](https://intersystems-community.github.io/webterminal/)をご覧ください)。前の記事で説明したものに似たアプローチを使用できます。 もう一度その手順を説明します - * ObjectScript 拡張機能の JSON 設定を開きます。 * 'conn' オブジェクトに 'links' オブジェクトを追加します。 * 'links' 内に以下の行を追加します。             "$(terminal) WebTerminal": "${serverUrl}/terminal/?ns=${ns}${serverAuth}"   以下のようになります。 ![](/sites/default/files/inline/images/images/image(1535).png)   これを行ったら、VSCode の下のステータスバーで[接続]をクリックすると、メニューに Web ターミナルが表示されます。 これは、[こちら](https://github.com/intersystems-community/vscode-objectscript/pull/444)の VSCode ObjectScript の GitHub 課題ディスカッション(上記の URL で使用される ${...} 変数に関する内容)で @John.Murray が提案したものです。 以下の GIF では、このプロセスを簡単に実演しています(標準のメニューから Web ターミナルを起動するオプションまで)。 ![](/sites/default/files/inline/images/vscodewebterminalvideo.gif)    
記事
Toshihiko Minamoto · 2022年9月20日

データ移行ツール パート III: DB2 から IRISへ

これは、市場に出回っている主なデータベースから InterSystems IRIS への移行に関する連載第 3 回目の記事です。 このパートでは、DB2 からの移行手続きを説明します。前の記事で説明したとおり、現時点ではいくつかの移行オプションが存在しますが、 最も一般的なオプションは、DBeaver(https://openexchange.intersystems.com/package/DBeaver)または SQLGateway を使用する 2 つの方法です。 最初のオプションはこの記事で紹介しますが、2 つ目のオプションは Robert Cemper が書いた「SQLgateway を使ったデータベース移行」(https://community.intersystems.com/post/db-migration-using-sqlgateway)という優れた記事で紹介されています。 ## 移行プロセス用のサンプルデータを取得 GitHub では、2 つのデータベースをビルドして実行する Docker Compose プロジェクトをダウンロードできます。 * **ソースデータベース**: サンプルデータベースを含む DB2 データベースの Docker インスタンス。 * **ターゲットデータベース**: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。 **サンプルを取得して実行するには、以下の手順に従います。** 1. git リポジトリの https://github.com/yurimarx/migration-db2-iris に移動します。 2. プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-db2-iris.git   3. migration-db2-iris プロジェクトフォルダに移動します。 4. ビルドを実行します: docker-compose build 5. コンテナを実行します: docker-compose up -d 6. Docker デスクトップで、インスタンスに問題がないことを確認します。 ![](/sites/default/files/inline/images/images/image(3531).png) ## 移行するデータについて 最初の 2 つのパートでは、販売データベースを操作しました。 DB 2 の場合は、インストールにサンプルデータベース(より完全な販売データベース)が含まれているため、この記事ではそのデータベースを使用します。 移行されるデータは以下のとおりです。 ![](/sites/default/files/inline/images/images/image(3532).png) DB 2 から IRIS への移行プロセスには、22 個のテーブルが含まれます。 移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。 ## DB2 から IRIS に移行するためのオープンソースツール: DBeaver DBeaver は、市場に出回っている主要データベース製品を使用する際に、データオブジェクトを接続、作成、ドロップ、選択、更新、および削除するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。 DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。 ## DBeaver を使って、ソースデータベースとターゲットデータベースを接続 移行するデータベース接続を設定します。 **DBeaver への DB2 接続を設定するには:** 1.    DB2 への初回接続には、5~10 分かかります。 これは、Docker インスタンスが作成された後に DB2 スクリプトがサンプルを構築するために必要な時間です。 2.    DBeaver で、[ファイル]>[新規作成]に移動します。 3.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3533).png) 4.    [SQL]タブ >[DB2 LUW]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3534).png) 5.    以下の図に示されるように、DB2 接続のフィールドに入力します。 ●    ホスト: localhost●    ポート: 50000●    データベース: sample●    ユーザー名: db2inst1●    パスワード: password●    [終了]をクリックします。 **DBeaver への InterSystems IRIS 接続を設定するには:** 1.    DBeaver で、[ファイル]>[新規作成]に移動します。 2.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3537).png) 3.    [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3538).png) 4.    DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。 5.    以下の図に示されるように、InterSystems IRIS 接続のフィールドに入力します。 ●    ホスト: localhost●    データベース/スキーマ: user●    ユーザー名: _SYSTEM●    パスワード: SYS●    [テスト接続]と[終了]をクリックします。 接続(sample と user)がデータベースナビゲーターで利用できるようになります。 ![](/sites/default/files/inline/images/images/image(3540).png) ## 移行を行う 移行を行うには、以下の手順に従います。 1.    sample 接続(DB2 接続)> public を展開し、すべてのテーブルを選択します。 以下の図のように、選択したテーブルを右クリックして、[データをエクスポート]を選択します。 ![](/sites/default/files/inline/images/images/image(3541).png) 2.    以下の図のようにデータベースを選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3542).png) 3.    [選択]ボタンをクリックします。 ![](/sites/default/files/inline/images/images/image(3543).png) 4.    dc_test を選択して、[OK]をクリックします。 ![](/sites/default/files/inline/images/images/image(3544).png) 5.    IRIS と DB2 では、XML 値の格納に異なるデータ型が使用されているため、ターゲットデータベースのデータ型構成を変更する必要があります。 6.    DB2INST1.CATALOG テーブルを展開して CATALOG フィールド(XML フィールド型)を選択し、[列…]をクリックします。 ![](/sites/default/files/inline/images/images/image(3545).png) 7.    ターゲットの型を LONGVARBINARY から VARCHAR(10000) に変更して、[OK]をクリックします。   ![](/sites/default/files/inline/images/images/image(3546).png) 8.    このプロセスを他のテーブルで繰り返します。 a.    CUSTOMER の INFO と HISTORY フィールド b.    PRODUCT の DESCRIPTION フィールド c.    SUPPLIERS の ADDR フィールド d.    PURCHASEORDER の PORDER フィールド 9.    ターゲットデータ型の変更が完了したら、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3547).png) 10.    [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3548).png) 11.    データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3549).png) 12.    [確認]で[続行]をクリックします。 ![](/sites/default/files/inline/images/images/image(3550).png) 13.    これで、データベースナビゲーターで、InterSystems IRIS dc_test スキーマ内のすべての DB2 テーブルが表示されるようになりました。 ![](/sites/default/files/inline/images/images/image(3551).png) テーブルの移行プロセスは非常に単純でしたが、 ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript か SQL で SQL ソースコードを書き直す必要があります。
記事
Mihoko Iijima · 2022年5月29日

プログラムでCSVファイルをテーブルにインポート/テーブルからCSVファイルにエクスポートする方法

これは InterSystems FAQ サイトの記事です。 InterSystems IRIS/Caché の管理ポータルメニュー:SQLデータインポートウィザードの処理で行うようなCSVファイルをテーブルへインポート、テーブルからファイルにエクスポートする方法をプログラムで実行することができます。 ※ サンプルはバージョン 2017.1以降で動作確認しています。 ※ バージョン 2016.2.3以前でお試しいただく場合は、SQL.Utilsクラス の20行目をコメント化してからご利用ください。 //Set mgr.IQN=$$$BuildIQN(SchemaName,TableName) サンプルの使用手順 サンプルはこちらにあります👉https://github.com/Intersystems-jp/DataImportExport CSVファイルをテーブルへインポート、テーブルからファイルへエクスポートの処理は、SQL.Utilsクラスを使用しています。 1) サンプルのインポート 実行したいネームスペースに SQL.Utilsクラスをインポートします。 スタジオをご利用の場合は、ファイルをドラッグ&ドロップするとインポートできます。 管理ポータルでインポートされる場合は、[システムエクスプローラ] > [クラス] > (ネームスペース選択) > インポートボタンクリック でファイルを選択し、インポートを行います。 VSCodeをご利用の場合は、使用したいIRISに接続し、SQL.Utilsクラスを保存(Ctrl+S)するとインポートされます。 2)サンプルの実行方法 A) SQLで試したい場合 テストで使用するテーブル定義の作成、テストデータの追加、サンプルの実行など、SQLで実行できます。 手順は、Test.sqlをご覧ください。 B) クラスで試したい場合 SQL.TestTbl.cls をインポートします。 テストデータの作成は以下のメソッドを実行してください。 do ##class(SQL.TestTbl).CreateData() テーブルからCSVファイルへのエクスポートには、SQL.UtilsクラスのCSVExport()メソッドを使用します。 実行例は以下の通りです。 USER>do ##class(SQL.Utils).CSVExport("c:\temp\test.csv","SQL.TestTbl") Name || %Library.String Email || %Library.String Memo || %Library.String ルーチンのコンパイル中 : SQLExport4.mac テストデータの一括削除には、以下のメソッドを実行してください。 do ##class(SQL.TestTbl).DestroyData() CSVファイルからテーブルへのインポートには、SQL.UtilsクラスのCSVImport()メソッドを使用します。 実行例は以下の通りです。 USER>do ##class(SQL.Utils).CSVImport("c:\temp\test.csv","SQL.TestTbl") adding Name adding Email adding Memo Importing data Building indices... Import complete: 4 rows inserted into SQL.TestTbl
記事
Megumi Kakechi · 2021年2月15日

データベースキャッシュおよびルーチンキャッシュの最適値の設定方法

これは InterSystems FAQ サイトの記事です。 データベースキャッシュおよびルーチンキャッシュをモニターし、最適値を調べる方法をご紹介します。 (1) データベースキャッシュ 現状の設定値で問題ないかは、^GLOSTAT ユーティリティ のCache Efficency値(キャッシュ効率)でモニターします。 Cache Efficiency 値は大きければ大きいほど良いですが、目安として100 以上であれば、設定サイズは問題ありません。 実行例) %SYS>do ^GLOSTATShould detailed statistics be displayed for each block type? No =>Statistics Local Remote Total------------------------- ----------- ------------- -------------Global references (all): 207,538 0 207,538(略)Cache Efficiency: 134 no gets <--- この値(略)Continue (c), zero statistics (z), timed stats (# sec > 0), quit? こちらの値は、管理ポータルのシステムダッシュボードでも参照可能です。 [システムオペレーション] > [システムダッシュボード] また、グローバル変数毎のデータベースバッファの使用量を確認できる ^GLOBUFFユーティリティがあります。 実行例) %SYS>do ^GLOBUFFFind which globals are using the most buffers.Display the top <25>:Total buffers: 19584 Buffers in use:4412Item Global Database Percentage (Count)1 rOBJ CACHELIB 24.320 (1073)2 rOBJ CACHESYS 16.772 (740)3 perf.TestD PERF 13.101 (578)(略) ^GLOSTAT と ^GBLBUFF の結果をファイルに出力するものを用意しています。 以下のルーチン(ZGLOBUFREPORT.mac)を %SYS に作成します。 /// ZGLOBUFREPORT.mac Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ Set HostName=$ZUtil(54,0) Set Date=$$CurDate,Time=$$CurTime Set File=logdir_"GLOBUF"_HostName_Date_Time_".log" Open File:"WNS" Use File Do GLOSTAT Do display^GLOBUFF(50) // 上位50グローバル Close File Quit GLOSTAT New Set client=$D(^NET(2,$P($ZU(86),"*",2),"DV","ECPNET1")) Set dskbase=$ZU(40,2,86) ;zero -> no detailed disk stats Set jrnbase=$ZU(40,2,94),xjwrites=0,xjents=1 Set ecpcstat=$ZU(40,2,148) Set detail=0 Do static^GLOSTAT Set act=60 Do timing^GLOSTAT Quit CurDate() { Do INT^%D Set %DAT=$ZConvert(%DAT,"U") Set MonthName=$Extract(%DAT,1,3) Set Day=+$Piece(%DAT," ",2) If Day?1n Set Day=0_Day Set Year=+$Piece(%DAT," ",3) If Year?2n Set Year=2000+Year Set Month=$Find("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",MonthName)\3 If Month?1n Set Month=0_Month Quit Year_Month_Day } CurTime() { Do INT^%T Set %TIM=$ZConvert(%TIM,"U") For Quit:%TIM'?1" ".e Set %TIM=$Extract(%TIM,2,99999) Set Time=$Piece(%TIM," ",1),AMPM=$Piece(%TIM," ",2) Set Hour=+$Piece(Time,":",1),Minutes=+$Piece(Time,":",2) If AMPM="AM",Hour=12 Set Hour=0 If AMPM="PM",Hour'=12 Set Hour=Hour+12 If Hour?1n Set Hour=0_Hour If Minutes?1n Set Minutes=0_Minutes Set Sec=$P($ZDATETIME($H,,1),":",3) Quit Hour_Minutes_Sec } ルーチンの以下の箇所を環境に合わせて変更してください。 Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ 実行例) %SYS>Do ^ZGLOBUFREPORT 添付ファイル(GLOBUF_ROUBUF.pdf:P.1~2)が出力ファイルの例になります。 (2) ルーチンキャッシュ 現状の設定値で問題ないかは、^GLOSTAT ユーティリティの Routine buffer loads and saves 値(ルーチンのデータベースへのI/O数)でモニターします。 60秒間の集計で20以下であれば、設定サイズは、問題ありません。 実行例) %SYS>d ^GLOSTATShould detailed statistics be displayed for each block type? No =>Statistics Local  Remote Total-------------------------- ------------- ------------- -------------Global references (all): 479,434 0 479,434(略)Continue (c), zero statistics (z), timed stats (# sec > 0), quit? 60Counts per Second for 60 Seconds...Should detailed statistics be displayed for each block type? No =>Statistics Local  Remote Total-------------------------- ------------- ------------- -------------=>Routine buffer loads and saves: 12 0 12 ルーチンキャッシュの使用状況をファイルに出力するものを用意しています。 以下のルーチン(ZGLOBUFREPORT.mac)を、%SYSに作成します。 /// ZROUBUFREPORT.MAC Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ Set HostName=$ZUtil(54,0) Set Date=$$CurDate,Time=$$CurTime Set File=logdir_"ROUBUF"_HostName_Date_Time_".log" Do CSTATR1 Quit CSTATR1 Set Instdir=$P($G(^%SYS("bindir")),"bin\") Set BinDir=Instdir_"BIN\" Set MgrDir=Instdir_"MGR" Set cstatSwitches="-a0 -R1 -s"_MgrDir Set Cmd=BinDir_"cstat" Set Cmd=Cmd_" "_cstatSwitches_" > "_File Set x=$ZF(-1,Cmd) Quit CurDate() { Do INT^%D Set %DAT=$ZConvert(%DAT,"U") Set MonthName=$Extract(%DAT,1,3) Set Day=+$Piece(%DAT," ",2) If Day?1n Set Day=0_Day Set Year=+$Piece(%DAT," ",3) If Year?2n Set Year=2000+Year Set Month=$Find("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC",MonthName)\3 If Month?1n Set Month=0_Month Quit Year_Month_Day } CurTime() { Do INT^%T Set %TIM=$ZConvert(%TIM,"U") For Quit:%TIM'?1" ".e Set %TIM=$Extract(%TIM,2,99999) Set Time=$Piece(%TIM," ",1),AMPM=$Piece(%TIM," ",2) Set Hour=+$Piece(Time,":",1),Minutes=+$Piece(Time,":",2) If AMPM="AM",Hour=12 Set Hour=0 If AMPM="PM",Hour'=12 Set Hour=Hour+12 If Hour?1n Set Hour=0_Hour If Minutes?1n Set Minutes=0_Minutes Set Sec=$P($ZDATETIME($H,,1),":",3) Quit Hour_Minutes_Sec } ルーチンの以下の箇所を環境に合わせて変更してください。 Set logdir="C:\Intersystems\cache\mgr\" //ログファイルディレクトリ 実行例) %SYS>Do ^ZROUBUFREPORT 添付ファイル(GLOBUF_ROUBUF.pdf:P.3~)が出力ファイルの例になります。
記事
Hiroshi Sato · 2021年10月27日

ターミナルでSQLを実行する方法

これは、InterSystems FAQサイトの記事です。$system.SQL.Shell() を使用します。 以下にサンプルを示しますので参考にしてください。 SAMPLES>do $System.SQL.Shell()SQL Command Line Shell---------------------------------------------------- The command prefix is currently set to: <>.Enter q to quit, ? for help.SAMPLES>>select * from Sample.Vendor1. select * from Sample.Vendor Vendor Balance Contact DaysClear DiscDays DiscRate LastInvDate LastPayDate MinPayment Name NetDays PayFlag TaxReportingAddress_City Address_State Address_Street Address_Zip: ※最初の行で何も入力せずにEnterを押すと、複数行入力モードに切り替わります。USER>d $SYSTEM.SQL.Shell()SQL Command Line Shell----------------------------------------------------Enter q to quit, ? for help.USER>> << entering multiline statement mode, 'GO' to execute >>1>>set transaction isolation level read committed2>>go 詳細は、以下ドキュメントをご参照ください。 SQLShellの使い方について【IRIS】SQLShellの使い方について
記事
Hiroshi Sato · 2021年11月11日

ODBCのクエリタイムアウトを回避する方法

これは InterSystems FAQ サイトの記事です。 タイムアウトを無効にするためには、DSNの設定でクエリタイムアウト無効に設定します。 Windowsコントロールパネル > [管理ツール] > [データソース(ODBC)] > [システムDSN]の構成 で クエリタイムアウト無効 にチェックを入れますと、タイムアウトは無効になります。 アプリケーション側で変更する場合は、ODBC APIレベルで設定することが可能です。 ODBCのSQLSetStmtAttr関数をコールする際に、SQL_ATTR_QUERY_TIMEOUT属性を設定してから、データソースに接続してください。
記事
Mihoko Iijima · 2021年4月2日

データベースアクセス中にデータベース設定を変更できるかどうか

これは InterSystems FAQ サイトの記事です。 アプリケーション等がデータベースにアクセスしている最中に、データベースの最大サイズの変更や未使用領域の開放などのデータベース設定変更を行うことにより、データベース整合性等に悪影響を及ぼすことはありません。 しかし、未使用領域の開放などは、ディスクアクセスの増加やメモリの使用等でシステムに負荷をかける可能性があるため、その観点からシステム運用に影響が出ないよう注意が必要です。
記事
Mihoko Iijima · 2021年4月9日

関数・メソッドの引数に可変長引数を渡すことができるかどうか

これは InterSystems FAQ サイトの記事です。 引数名の後ろに ... をつけることで可変の引数を渡すことができます。 ObjectScript では、配列を使って任意の数の引数を渡すことができます。 例文は以下の通りです。例文では、メソッド実行後に確認しやすいように、グローバル変数(=データベースに格納される変数)に引数の情報を設定しています。 Class TEST.ARGTEST1 Extends %RegisteredObject { ClassMethod NewMethod1(Arg... As %String) As %Boolean { kill ^a merge ^a = Arg } } ターミナルで実行した結果は以下の通りです。 USER>DO ##class(TEST.ARGTEST1).NewMethod1(1,2,3,4,5) USER>ZWRITE ^a ^a=5 ^a(1)=1 ^a(2)=2 ^a(3)=3 ^a(4)=4 ^a(5)=5
記事
Mihoko Iijima · 2021年4月9日

指定のテーブルの全フィールドをSQLで取得する方法

これは InterSystems FAQ サイトの記事です。 INFORMATION_SCHEMA スキーマを使用して取得できます。 INFORMATION_SCHEMA はシステム用スキーマのため、デフォルトでは管理ポータルのSQLメニューに表示されません。表示させる方法は以下の通りです。 管理ポータル→システムエクスプローラ→SQL メニューを開きます。 スキーマのプルダウン左にある「システム」をチェックします。 スキーマのプルダウンから INFORMATION_SCHEMA を選択します。 指定のテーブル(ISJ.Class1)に対するID、フィールド名(COLUMN_NAME)、データタイプ(DATA_TYPE)、説明(DESCRIPTION)を取得するSQLは以下の通りです。 SELECT ID,COLUMN_NAME,DATA_TYPE,DESCRIPTION FROM INFORMATION_SCHEMA.COLUMNS where TABLE_SCHEMA='ISJ' AND TABLE_NAME='Class1'
記事
Megumi Kakechi · 2021年8月5日

データベースファイルの最大サイズ

これは InterSystems FAQ サイトの記事です。 ディスクの空きスペースにもよりますが、ブロック別で最大サイズが異なります。 各バージョン共通で、8KBのブロックサイズを使用した場合は、32TBです。 バージョン2008.1以降のバージョンでは、8KB以外のブロックサイズを指定できるようになったため、最大サイズは以下の通りです。 16KBのブロックサイズを使用した場合、64TB 32KBのブロックサイズを使用した場合、128TB 64KBのブロックサイズを使用した場合、256TB
記事
Tomoko Furuzono · 2021年12月26日

特殊変数$ZTIMESTAMP をローカルのタイムゾーンに変更する方法

これは、InterSystems FAQサイトの記事です。$ZTIMESTAMPはUTC形式で日付時刻を返すため、ローカルのタイムゾーンに変更するためには以下システムオブジェクトを利用します。 $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP) 上記出力結果は ddddd,sssss.fff の形式で出力されます。 ddddd:$HOROLOGの日付と同じ形式 sssss:現在の日付の午前 0 時からの経過秒数を示す整数 fff :秒の小数部を示す可変桁数 ※ $HOROLOGに似ていますが、$HOROLOGには秒の小数部分は含まれません。 SAMPLES>write $SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)," - ", $horolog,!63895,64252.66 - 63895,64252SAMPLES>write $ZDATETIME($SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP),8)20151209 17:45:56SAMPLES>write $ZDATETIME($ZTIMESTAMP,8)20151209 08:46:05SAMPLES>
記事
Tomoko Furuzono · 2023年4月11日

日本語を含むHL7を送受信するときに利用する文字コード

これは、InterSystems FAQサイトの記事です。HL7の仕様では、日本語データを送受信する場合はJISを文字コードとして利用し、メッセージヘッダ(MSH)の18番目の2項目に iso-ir87 を指定します。HL7用プロダクションでは、情報の入力はビジネスサービス、情報の出力はビジネスオペレーションを利用します。日本語を含むHL7を送受信する場合は、入力/出力の対象となる全てのコンポーネントの設定で [追加の設定] の「キャラクターセット(Charset)」に iso-ir87 を指定することで正しく日本語データを取り扱うことができます。
記事
Tomoko Furuzono · 2023年5月8日

エラーについて

これは、InterSystems FAQサイトの記事です。<ROLLFAIL>エラーは、ロールバック処理中に何らかのエラーが発生した場合に発生するエラーです。 トランザクション・ロールバックのロギング よくあるケースはロールバック時点でシステム全体のジャーナリング機能が無効になっていた場合です。ジャーナル機能が無効になるのは、ジャーナルを無効にする設定を行うかジャーナル格納ディレクトリのディスクが満杯のためにシステムがジャーナルを無効にした場合などです。