記事 Saori Murata · 9月 30, 2024 19m read

開発者の皆さん、こんにちは! InterSystems IRIS(以下、IRIS)を使用したアプリケーション開発において、皆さんは環境設定をどうされていますか? 私は最近になって、「インストールマニフェスト」という機能があることを知りました。 これは、管理ポータルでポチポチしていた作業をコード化・自動化できる強力なツールです! 最初こそとっつきづらかったものの良いところがたくさんあるなと思ったので、簡単にではありますが皆さんにその良さと始め方をご紹介したいと思います。

なお、私が使用しているIRISバージョンは以下です。

2022.1

バージョンが異なる場合、違う書き方になっているもの等が存在する場合がありますので、 公式ドキュメント等を参照し適宜読み替えていただければと思います。

目次

  1. はじめに
  2. インストールマニフェストとは
  3. インストールマニフェストのメリット・デメリット
  4. インストールマニフェストの始め方と基本構造
    1. マニフェストの作成
    2. マニフェストの編集
    3. マニフェストの実行
  5. インストールマニフェストでできること
    1. 変数の設定
    2. ネームスペースとデータベースの設定
    3. データのインポートとマッピング
    4. セキュリティ設定
    5. InterOperability 機能の設定
  6. インストールマニフェスト以外で行う環境設定
    1. ObjectScriptによる実装
    2. Pythonによる実装
  7. まとめ
0
1 342
記事 Kosaku Ikeda · 9月 23, 2024 6m read

コミュニティの皆さんこんにちは。

突然ですが、皆さんはIRISの機能にある「ユニットテスト」は利用されているでしょうか。
筆者はまだ実装まで行えていませんが、各関数の品質保証を担保するため導入を検討している段階です。

現状、IRISのユニットテストには下記2点の対応すべき点があると考えています。

  1. テスト結果の可読性が低い(先日vscodeで拡張機能が出ていましたが、やはり見ずらいと感じました)
  2. ユニットテストを自動で実行する手段がない

特にテストが継続的に自動で実施されないと、ユニットテスト自体が次第に陳腐化し、実行されなくなり忘れ去られる恐れがあると考えます。
ただし、意味もなく定期的にテストを実行しても効果がありません。
そこで、Gitのpushのタイミングで行おうと考えました。

次にテスト環境です。
テスト環境の構築は、テスト自動化の観点からみるとCI/CDツール等を利用するのが一般的だと思います。
ただ今回は、テスト環境の構築を簡易にすませたいと考え、IRISの既存技術を組み合わせて構築しようと考えました。

そこで運用幅の広いInteroperabilityとユニットテストを組み合わせて、テストの自動化が可能か考察していきたいと思います。

【ユニットテスト全体概要】

【全体の流れ】

 ■ユーザの開発環境

  ①ユーザは改修したクラスをGitへpushする

 ■Git用のサーバ

0
0 249
記事 Yusuke Kojima · 9月 17, 2024 5m read

開発者の皆さん、こんにちは。

突然ですが、2024年6月25日に開発者向けセミナー「FHIR 新機能のご紹介~2024.1~」が開催されました。
ご視聴になられた方も多数いらっしゃると思います。
まだご視聴になられていない方は是非一度、ご覧になってみてください。
YouTubeリンク

さて、こちらのセミナーにおいてご紹介された、IRIS for Health 2024.1からの新機能「FHIR Object Model」を用いて、リポジトリタイプのInteroperability開発の具体的なサンプルを作成してみました。
自身の備忘のため、すぐ開発環境を構築できるよう、コンテナ環境かつGitHubの公開もしております。
利用方法は、GitHub内のREADMEを参照ください。
GitHubリンク

目次

  1. FHIR Object Modelとは?

  2. メリット・デメリットを深堀り

  3. GitHub公開ソースについて

  4. 所感

1. FHIR Object Modelとは?

0
0 221
お知らせ Toshihiko Minamoto · 9月 12, 2024

Git を使用してIRIS でソリューションを構築することは、素晴らしいことです! 単にローカルの git リポジトリにVSCodeを使用し、サーバーに変更をプッシュする... それは非常に簡単です。

でも、次の場合はどうでしょうか。

  • 共有リモート開発環境で他の開発者と共同作業を行い、同じファイルの同時編集を回避したい場合
  • BPL、DTL、ピボット、ダッシュボードなどにおいて管理ポータルに基づくエディターを使用しており、 作業に簡潔なソース管理を使用したい場合
  • 一部の作業においては引き続き Studio を使用しているかたまに VSCode から Studio に戻っているか、チームがまだ VSCode を完全に採用しておらず、一部のチームメンバーが Studio の使用を希望している場合
  • 同じネームスペースで同時に多数の独立したプロジェクト(InterSystems Package Manager を使って定義された複数のパッケージなど)に取り組んでおり、(多数の個別のプロジェクトではなく)1 つの isfs 編集ビューからすべてのプロジェクトの作業を行い、適切な git リポジトリで変更を自動的に追跡する場合
0
0 244
記事 Hiroshi Sato · 9月 12, 2024 2m read

これは InterSystems FAQ サイトの記事です。
 

ロックテーブルの1エントリは管理領域の固定512 bytesとロック文字列情報などの可変領域から構成されます。

可変領域はロック対象のグローバルノード名に関連する情報に必要な長さ(bytes)になります。

1つのLockコマンドにつき、上記で示した長さのデータが必要です。

そしてその可変領域に必要なデータ長は、ロック対象のグローバルノード名(^xxx(xxx,xxx)) の長さに見合う16,32,64,128,256,…bytesのバケットの長さになります。

例えばロック対象のグローバルノード名が^xxx(123,"data")とすると、 ^xxx(123,"data")にデータのロケーション等のデータが付加されたものがその可変領域となり、32byteまたは64bytes(データロケーションが相応に長い場合)のバケットを使用しますので、

このロックで使用するデータサイズが、64byteのバケットを使用すると仮定すると、

512(固定領域)+ 64 (可変領域)= 576 bytes

となります。

0
0 78
記事 Hiroshi Sato · 9月 12, 2024 2m read

これは InterSystems FAQ サイトの記事です。
 

IRIS2023.1から導入されたgmheapとlocksizの新しいデフォルト値について紹介します。

gmheap=0は、特別な設定の必要性がないほとんどのシステム(実運用システムを含む)に適切なように設計された新しいデフォルト値です。

0に設定することで、システムがシステム全体のサイズを推測し、妥当な値を算出してくれます。

gmheap=0 に設定した場合、システムは、グローバルバッファ用に設定されたメモリの合計に3%を乗じた値を基準に、300MBの下限と2GBの上限の範囲内でgmheap値を設定します。

0以外の値はそれをそのまま使用し、2GBよりはるかに大きく、あるいは300MBよりはるかに小さく設定することができます。

(ただし、小さな値を設定した場合、メモリを必要とする機能の利用が失敗する可能性があります。 同様に極端に大きな値を設定することでシステムに悪影響を与える可能性があります)

さらにこの変更以前は、.cpfファイルのgmheap設定に加えて、CPUスレッド数 に2MBを掛けた値をシステムが内部的に追加していました。

このため、異なるシステムに構成を移動するときや、物理メモリの使用量を理解しようとするときに混乱を招くことがありました。

0
0 91
記事 Hiroshi Sato · 9月 12, 2024 3m read

これは InterSystems FAQ サイトの記事です。
 

PythonからObjectScriptのルーチンを直接呼び出すことはできませんが、クラスメソッドを経由して間接的に呼び出すことができます。

しかし、Pythonの変数とObjectScriptのローカル変数は内部構造が異なるため、情報の交換には少し工夫が必要です。

簡単なサンプルでその方法について説明します。

まず、2つの変数を足し算する簡単なルーチン ^testを作ります。 

TEST    ;
    set sum = a + b

 

次にこの^testを呼び出すPythonのメソッドを含んだUser.testというクラスを作ります。

そしてpyという名前のPythonのメソッドを作成します。

先述の通りPythonからObjectScriptのルーチンを直接呼び出すことはできないので、ルーチンを間接的に呼び出すObjectScriptのメソッドを作成する必要があり、そのメソッドをPythonメソッドから呼び出すようにします。

渡したいデータが複数個ある場合、その数分引数を用意するのは面倒なため、Pythonの場合、情報をまとめて交換する際にdictionary(辞書)やlistという構造を使用することができます。

ここでは、dictionaryを使用する例を紹介します。

0
0 142
記事 Hiroshi Sato · 9月 12, 2024 1m read

これは InterSystems FAQ サイトの記事です。
 

messages.logまたはcconsole.log内に記録されるCSPGatewayLatencyのメッセージは、サーバが、パフォーマンス測定のため定期的に「CSPゲートウェイにリクエストを送信して応答をもらう」ことを行っており、応答を受け取るまで一定時間以上かかったときに出る警告(応答時間の閾値)です。

その既定値は1000ミリ秒です。

WebGateway(CSPGateway)が稼働する Web サーバの負荷が高い場合に出力する場合がありますが、実際のCSPアプリケーションやREST APIの動作や応答速度に影響が見られなければ、特に問題はありません。

またこのメッセージの出力頻度を下げるためにこの閾値を変更する方法もあります。

変更方法は以下を参照ください

ヘルスモニタのセンサー値をコマンドで変更する方法 

0
0 95
記事 Hiroshi Sato · 9月 12, 2024 2m read

これは InterSystems FAQ サイトの記事です。
 

404エラーが返される場合に、以下の対応でエラーが解消されることがわかっています。


(1) binの接続を許可

/cspの構成エディタ>セクションで以下選択

  system.webServer > security > requestFiltering

  > hiddenSegmets 選択 > (コレクション)の右欄(Count=xx)の右端 [...] クリック

  > segment欄に binの行があったので、選択して削除

  > 画面戻って、右上の [適用] クリック  

または、IISの構成ファイルを直接編集することでも対応可能です。

C:\Windows\System32\inetsrv\config\applicationHost.config

そのファイルから以下のような記述部分を探し、<add segment="bin" />の行を削除し、保存します。

0
0 250
記事 Hiroshi Sato · 9月 12, 2024 1m read

これは InterSystems FAQ サイトの記事です。
 

 以下のようなベンチマーク関連の情報が公開されています。

Intel社と共同で実施したパフォーマンス(レイテンシー)とスケーラビリティ(スループット)を計測するベンチマーク結果

Intel社との共同ベンチマーク

ESG社によるIRISと他社データベースとの性能比較に関するレポート

ESGテクニカルレビュー


ウルシステムズ社が実施したAWS AuroraとIRISの性能評価結果

ウルシステムズ社が検証したベンチマーク結果レポート

オープンソースのベンチマークプログラム

公開しているベンチマークプログラム

WinterCorp社のベンチマークレポート

WInterCorpのベンチマークレポート

様々なハードウェア上で実施したベンチマーク結果を公表

SQLベンチマーク

開発生産性の評価に関連するレポート

Neuralytix社のアプリケーション開発生産性の定量的比較

0
0 133
お知らせ Rie Tokue · 9月 6, 2024

 

お世話になっております。

ご好評をいただいております弊社主催の開発者向けウェビナー、第18回となる10月は、以下の日時・内容で開催いたします。

ご登録はこちらから

【概要】

ITを取り巻く環境は常に進化を続け、ITリソースの需要はいつも強く求められています。それゆえ、社内開発からお客様へのサービス展開まで、システム環境構築の自動化戦略は、いまや欠かせないものになりました。

このウェビナーでは、Red Hat社の構成自動化ツール Ansible をご紹介するとともに、InterSystems IRIS のインストールから構成設定、アプリ導入までを Ansible で簡単に自動化する手順を、デモを通じてご覧いただきます。

【こんな方にお勧め】

  • IRISに関わる技術者の方
  • 環境構築の自動化にご興味のある方

ご多用中とは存じますが、皆様のご参加をお待ち申し上げております。

0
0 130
記事 Megumi Kakechi · 9月 3, 2024 2m read

これは InterSystems FAQ サイトの記事です。
HTTPレスポンスヘッダ情報を取得したい場合、以下のような方法があります。
開発中などに、送られてきたヘッダの項目名、そのデータを確認したい場合に、是非ご活用ください。
 

*CSPまたはRESTでヘッダ情報を取る場合

set var=""for {
   set var=$order(%request.CgiEnvs(var))
   if var=""quitset val=$get(%request.CgiEnvs(var))
   write var_": "_val,"<BR>"
 }

%request オブジェクトについて


*ターミナルで情報を取る場合

%Net.HttpRequest クラスの Head メソッドを使用します。

set http = ##class(%Net.HttpRequest).%New()
 set http.Server = "localhost"set http.Port = 80do http.Head("/csp/user/menu.csp")         // ヘッダ情報をリクエストするURLdo http.HttpResponse.OutputToDevice()
 set http = ""


*簡単に目で見る場合

0
0 153
お知らせ Mihoko Iijima · 9月 2, 2024

開発者の皆さん、こんにちは!

USコミュニティのコンテスト情報が更新されました。今回は、コミュニティメンバーの開発の手助けになるような便利ツールの作成がテーマです。

🏆 InterSystemsデベロッパーツールコンテスト 🏆

※ 日本のコミュニティの 第2回 InterSystems Japan 技術文書ライティングコンテスト 開催!とは異なるコンテストです。ご注意ください!

InterSystems IRIS を使用して、より迅速な開発、より質的なコードの貢献、ソリューションのテスト、デプロイ、サポート、または監視に役立つアプリケーションをご応募ください。

期間:2024年9月9日~29日

賞品総額: $14,000


0
0 103
記事 Mihoko Iijima · 8月 9, 2024 36m read

開発者の皆さん、こんにちは!

この記事は、2024年7月に開催された「InterSystems Pythonプログラミングコンテスト2024」でエキスパート投票、コミュニティ投票の両方で1位を獲得された @Henry Pereira Pereira さん @José Pereira さん @Henrique Dias Dias さんが開発された sqlzilla について、アプリを動かしてみた感想と、中の構造について @José Pereira さんが投稿された「Text to IRIS with LangChain」の翻訳をご紹介します。

第2回 InterSystems Japan 技術文書ライティングコンテスト 開催! では、生成AIに関連する記事を投稿いただくと、ボーナスポイントを4点獲得できます📢 @José Pereira さんの記事を💡ヒント💡に皆様の操作体験談、アイデアなどを共有いただければと思います。

開発されたアプリSQLzilla についての概要ですが、Open Exchangesqlzilla のREADMEに以下のように紹介されています。

「SQLzilla は、Python と AI のパワーを活用して、自然言語の SQL クエリ生成を通じてデータ アクセスを簡素化し、複雑なデータ クエリとプログラミング経験の少ないユーザーとの間のギャップを埋めます。」

1
0 165
記事 Megumi Kakechi · 8月 15, 2024 2m read

通常、Caché でエクスポートしたクラスやルーチンをIRISにインポートすることは可能ですが、IRISよりエクスポートしたクラスやルーチンを Caché にインポートすることはできません。

Caché にインポートしようとすると、以下のようなエラーになります。

USER>do$system.OBJ.Load("C:\temp\test.xml")
 
ロード開始 07/23/202416:50:42
ファイル C:\temp\test.xml を xml としてロード中
ERROR #6301 行: 2 オフセット: 117 これはCacheエクスポートファイルではありません。インポートできません。
読込時に 1 個のエラーを検出しました。
 


どうしても、古いバージョンにインポートする必要がある場合、「/exportversion」というエクスポート修飾子を使用することが可能です。

使用方法は以下のようになります。/exportversion には、エクスポートしたルーチンをインポートしたい環境のCacheバージョンを指定します。

USER>write$SYSTEM.OBJ.Export("test.mac","c:\temp\test2.xml","/exportversion=cache2018.1")
2
0 200
記事 Mihoko Iijima · 8月 21, 2024 3m read

開発者の皆さんこんにちは!

9月2日から、🖋第2回 InterSystems Japan 技術文書ライティングコンテスト🖋 が始まります!応募の準備はばっちりでしょうか?👀

この記事では、昨年開催したコンテストに応募いただいた作品を審査員コメントを添えてご紹介します。

(審査員コメントは昨年11月に開催したミートアップ内で行ったコンテスト表彰式で紹介した内容です)

@Akio Hashimoto さんが投稿された DockerにIRISを構築する簡単なチュートリアル

審査員コメント:

  • IRISのコンテナを作成する手順を必要十分に、かつシンプルに説明されている。
  • まずはコンテナ版IRISを動かしてみたい!と思っている方に最適なチュートリアルだと思いました。

@Junichi Sakata さんが投稿された  Embedded Pythonの使い所は?

審査員コメント:

  • Embedded Pythonを使うと何がうれしいのか?について、具体的に試された内容とまとめがかかれていてとても参考になる記事

@Yuji Ohata さんが投稿された AWS環境を用いたCI/CDの仕組みの紹介。

審査員コメント:

0
0 134
記事 Megumi Kakechi · 8月 20, 2024 3m read

これは InterSystems FAQ サイトの記事です。
messages.logに「Updates may become suspended due to low available buffers」のエラーが出ている場合、このインスタンスのバッファ利用可能サイズが低下していることが考えられます。

上記メッセージが頻繁に出力するようであれば以下の対処をご検討ください。

  •  データベースキャッシュの設定値が小さければ、値を増やします(ただし、その分物理メモリに余裕が必要です。)
  •  データベースキャッシュの設定値が十分に大きな設定値であれば、ライトデーモンのバッファの書き込み処理でのディスク性能不足の可能性が考えられる為、更新処理を分散して時間当たりの更新量を減らすか、ディスク装置の性能を上げます。 ※ストレージのメンテナンス(スナップ等によるバックアップ)や、他のサーバによるI/O負荷などによる影響も考えられます。
0
0 130
InterSystems公式 Megumi Kakechi · 8月 16, 2024 2m read

インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または <DISKHARD> エラーが発生する可能性がある不具合を修正しました。危険性があるのは、未使用領域削除(Truncate)を行ったマルチボリュームデータベースのみです。

この問題は、以下の製品およびそれらベースとしたその他のインターシステムズ製品に存在します:

  InterSystems IRIS                       2024.1, 2024.1.1, 2024.2
  InterSystems IRIS for Health    2024.1, 2024.1.1, 2024.2
  HealthShare Health Connect    2024.1, 2024.1.1, 2024.2

上記以外の HealthShare 製品はこの問題の影響を受けません。

インターシステムズは、この不具合に関するお客様からの報告を受けていませんが、この問題を回避するために、以下の一時的な緩和策を推奨します:

0
0 73
記事 Toshihiko Minamoto · 8月 16, 2024 12m read

Visual Studio Code(VSCode)は、市場で最も一般的なコードエディターです。 Microsoft によって制作され、無料 IDE として配布されています。 VSCode は ObjectScript などの多数のプログラミング言語をサポートしており、2018 年までは Atelier(Eclipse ベース)もサポートしていました。 InterSystems 製品開発の主なオプションの 1 つとして考えられていましたが、 2018 年、InterSystems 開発者コミュニティが VSCode のサポートを発表した際に、関連する InterSystems のプロユーザーらが実際にこのエディターを使用し始め、以来、特に新しいテクノロジー(Docker、Kubernetes、NodeJS、Angular、React、DevOps、GitLab など)を使用する開発者の間でその使用が続いています。 VSCode の一番の機能の中にはデバッグ機能が挙げられます。 そこで、この記事では、クラスコードや %CSP.REST コードなどの ObjectScript コードをデバッグする方法を詳しく紹介します。

デバッグとは?

0
1 419
ディスカッション Toshihiko Minamoto · 7月 26, 2024

コミュニティの皆さん
こんにちは!

ご存知かもしれませんが、Developer Community AIがリリースされて1ヶ月以上が経ちました🎉 興味を持たれた方は、ぜひ試してみてください😁 まだの方は、ぜひお試しください!いずれにせよ、まだベータ版であるため、私たちは皆さんがこのAIについてどのように考えているかを知りたいと思っています。

皆さんの時間と労力を大切にしているので、感想をシェアしてくれたメンバーに、抽選でキュートな賞品をプレゼントします。この懸賞に参加するには、以下のガイドラインに従ってください。

3
0 128
InterSystems公式 Seisuke Nakahashi · 8月 14, 2024

InterSystems IRIS 2024.3 と InterSystems IRIS for Health 2024.3 の最初の開発者プレビューが WRC プレビューダウンロードページ に公開されました。コンテナ版は InterSystems コンテナレジストリ から入手いただけます。コンテナは latest-preview とタグ付けされています。

0
0 64
お知らせ Toshihiko Minamoto · 8月 13, 2024

%UnitTest framework を使用してユニットテストを構築したことがある場合、またはこれから構築しようとお考えの場合は、InterSystems Testing Manager をご覧ください。

VS Code を離れることなく、ユニットテストの閲覧、実行またはデバッグ、過去の実行結果の表示が可能になりました。

InterSystems Testing Manager は、ObjectScript 拡張機能がサポートするソースコード場所のパラダイムに対応しています。 ユニットテストクラスは、VS Code のローカルファイルシステム('client-side editing' パラダイム)またはサーバーネームスペース('server-side editing')のいずれかでマスターできます。 いずれの場合でも、実際のテストの実行は、サーバーネームスペースで発生します。

フィードバックをぜひお送りください。

0
0 94
記事 Akio Hashimoto · 7月 5, 2024 2m read

IRISでPythonを扱う時に、既存の%DynamicObject型の値をそのまま利用したいと思うのですが、Embedded Pythonは自動で%DynamicObjectをdict型にはしてくれません。親和性はとてもあるのですが。。。

そこで、既存プログラムで生成した%DynamicObject型の値をPython側、特に外部のPythonファイル側でdict型を期待している関数に利用するにはどうすれば良いか。

少しスマートではありませんが、%DynamicObjectを一旦JSON文字列に置き換え、Embedded Python 内でJSON文字列からdict型に変換する方法しかないようです。
以下が、その手順です。

Set data = {}
Set data.name = "hanako"
Set data.age = 20

Do ..testPython(data)

ClassMethod testPython(arg As %DynamicObject) [ Language = python ]
{
    import json
    import pythonfile

    data = json.loads(arg._ToJSON())
    pythonfile.test(data)
}

pythonfile.py

5
0 268
InterSystems公式 Megumi Kakechi · 8月 7, 2024

InterSystems API Manager (IAM) のバージョン 2.8.4.11 & 3.4.3.11 が公開されました。 これらは、長期的にサポートされている IAM の 2 つのバージョンの最新版です。これらのリリースには重要な修正が含まれており、すべてのお客様にアップグレードをお勧めします。

IAM 3.0または3.2をお使いのお客様は、これらのバージョンのサポートがまもなく終了するため、3.4.3.11にアップグレードすることをお勧めします。

IAM は、InterSystems IRIS サーバとアプリケーション間の API ゲートウェイであり、HTTP ベースのトラフィックを効果的に監視、制御、管理するためのツールを提供します。IAM は、InterSystems IRIS ライセンスの無償アドオンとして利用できます。

IAMは、WRCソフトウェア配布サイトのComponentsエリアからダウンロードできます。

0
0 66
記事 Toshihiko Minamoto · 8月 6, 2024 7m read

前回の記事でSMART On FHIRプロジェクトのアーキテクチャを紹介したので、いよいよ本題に入り、必要となる全ての要素の設定を始めましょう。

まずはAuth0から始めます。

Auth0の設定

登録が完了したら、左側のメニューから最初のアプリケーションを作成します

この例では、Angular 16で開発されたアプリケーションなので、Single Page Web Applicationタイプとなります。このオプションを選択し、Createをクリックします。

次の画面では以下のフィールドを定義する必要があります。

注意: URLはすべてHTTPSでなければなりません。これはOAuth2接続要件の1つです。

0
0 77
記事 Tomoko Furuzono · 8月 4, 2024 1m read

これは、InterSystems FAQサイトの記事です。

管理ポータルのグローバル変数表示ページでは、サブスクリプトレベルの範囲を指定して表示することが可能です。

各サブスクリプトレベルで、 <開始値>:<終了値> のように指定します。
開始値を省略すると先頭から終了値まで、終了値を省略すると指定値から最後までのグローバル変数を表示します。

《例》

(グローバル全体)

(第2サブスクリプトが"b"のデータだけを表示)
 

(第3サブスクリプトが300以上のデータを表示)
 

(第3サブスクリプトが50以下のデータを表示)
  

下記ドキュメントページも併せてご確認ください。
【ドキュメント】グローバル・データの表示
 

0
0 92
記事 Tomoko Furuzono · 8月 4, 2024 1m read

これは、InterSystems FAQサイトの記事です。

区切り識別子は、区切り文字で囲まれた一意の識別子です。
InterSystems SQL は、その区切り文字として二重引用符 「"」 をサポートしています。
一方、リテラル値を区切る場合は、一重引用符「'」を使用します。
例えば、下記のSQLにおいて、
①は、Nameの値が「AAA」という文字列である、という検索条件と解釈されますが、
②は、Name列 = AAA列、という結合条件と解釈されます。※実際にAAA列が無ければエラーとなります。

select * from Samle.Person
whereName = 'AAA'


select * from Sample.Person
whereName = "AAA"


リテラル値(文字列、数値)を示す区切り文字として二重引用符「"」を使用したい場合は、
下記を実行し、この区切り識別子サポートするためのオプションを無効にします。

0
0 92