Skip to content

Commit 594b1ad

Browse files
authored
fix: update prompts, import script, and README documentation (#5)
大前さんにレビューいただきました。
1 parent 08e8956 commit 594b1ad

File tree

5 files changed

+46
-64
lines changed

5 files changed

+46
-64
lines changed

README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,14 @@ uv run pg_connect_test.py
166166
以下の手順に従って、データベースオブジェクトをアップロードしてください。
167167
1. `./import-schema/dumpfile``{name}_METADATAONLY.DMP` をアップロードしてください。
168168
2. `import-schema` フォルダ配下の各シェルスクリプトについて、コメントの指示に従い、スキーマ名でループしている箇所に、アップロードしたファイルのスキーマ名を列挙してください。
169-
3. `import-schema` フォルダ配下のシェルスクリプトを番号順に実行してください。権限不足でエラーが出る場合には `chmod +x import-schema/1pre.sh` のように権限付与してください。
169+
3. `import-schema` フォルダ配下のシェルスクリプトを番号順に実行してください。
170+
171+
```bash
172+
chmod +x import-schema/1pre.sh
173+
./import-schema/1pre.sh
174+
chmod +x import-schema/2load.sh
175+
./import-schema/2load.sh
176+
```
170177

171178
`2load.sh` で以下のエラーが出る場合は、Oracle on EC2 インスタンスに oracle ユーザーでログインし、パスが一致するようにディレクトリを作成し、ダンプファイルを移動してください。
172179

@@ -253,3 +260,25 @@ https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/command-line-inst
253260
https://catalog.workshops.aws/qwords/ja-JP/10-start-workshop/16-builder-id
254261

255262

263+
### Oracle Database への接続方法
264+
265+
```bash
266+
# Oracle XE on EC2 インスタンスへの接続
267+
cd sample-sql-converter-agent-workshop/
268+
ssh -F ssh-config oracle
269+
270+
# Oracle ユーザーに遷移
271+
sudo su - oracle
272+
273+
# Oracle Database の SYSおよびSYSTEMスキーマのパスワードを取得
274+
SECRET_JSON=$(aws secretsmanager get-secret-value --secret-id oracle-credentials --region us-east-1 --query SecretString --output text)
275+
DB_PASSWORD=$(echo "$SECRET_JSON" | jq -r '.password')
276+
277+
# Oracle Database に接続
278+
sqlplus sys/${DB_PASSWORD}@localhost/XEPDB1 as sysdba
279+
280+
sqlplus system/${DB_PASSWORD}@localhost/XEPDB1
281+
282+
```
283+
284+

agent/prompts/instructions.txt

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,28 @@
1414
• すべての内部関数を別個の独立した関数として定義します
1515
• メインの手続きから呼び出す構造に変更します
1616

17-
### テスト考慮事項
17+
## テスト考慮事項
1818
• Oracle環境、PostgreSQL環境に変換対象のオブジェクトが参照するテーブルや索引があるか確認します
1919
• 存在する場合は新たにDDLを作成するのではなく、それら表や索引といったオブジェクトを利用します。またそれらオブジェクトはDROPしないようにします
2020

21-
### データ型・関数マッピング
21+
## データ型・関数マッピング
2222
• **データ型変換**:VARCHAR2 → VARCHAR
2323
• **関数変換**:
2424
• NVL → COALESCE
2525
• DECODE → CASE
26-
• SYSDATE → CURRENT_TIMESTAMP
26+
• Sysdateの扱い
27+
Oracle側でSYSDATEを利用している場合は、PostgreSQL側で以下の関数を作成し、この関数を利用することを前提に変換してください。
28+
29+
```sql
30+
CREATE OR REPLACE FUNCTION PUBLIC.sysdate()
31+
RETURNS TIMESTAMP WITHOUT TIME ZONE
32+
AS
33+
$BODY$
34+
SELECT clock_timestamp() AT TIME ZONE 'Asia/Tokyo';
35+
$BODY$
36+
LANGUAGE sql;
37+
```
38+
ref. https://aws.amazon.com/jp/blogs/news/converting-the-sysdate-function-from-oracle-to-postgresql/
2739

2840
## データ型変換
2941
- OracleのRECORD型またはTYPE宣言の場合:

import-schema/1pre.sh

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
set -e
44

5-
# Oracle IPアドレスを環境変数から取得
6-
# if [ -z "$ORACLE_IP" ]; then
7-
# echo "Error: ORACLE_IP environment variable is not set"
8-
# exit 1
9-
# fi
10-
115
# Oracle DatabaseのパスワードをSecret Manager から取得
126
SECRET_JSON=$(aws secretsmanager get-secret-value --secret-id oracle-credentials --region us-east-1 --query SecretString --output text)
137
export DB_PASSWORD=$(echo "$SECRET_JSON" | jq -r '.password')
@@ -45,7 +39,7 @@ EOF
4539
done
4640

4741
# ローカルのダンプファイルをOracle on EC2 インスタンスの/tmpにコピー
48-
scp -F ssh-config ./load/dumpfile/*.DMP oracle:/tmp/.
42+
scp -F ssh-config ./import-schema/dumpfile/*.DMP oracle:/tmp/.
4943

5044
# Oracle on EC2 インスタンスにダンプファイル用ディレクトリを作成
5145
ssh -tt -F ssh-config oracle << EOF

import-schema/2load.sh

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22

33
set -e
44

5-
# Oracle IPアドレスを環境変数から取得
6-
# if [ -z "$ORACLE_IP" ]; then
7-
# echo "Error: ORACLE_IP environment variable is not set"
8-
# exit 1
9-
# fi
10-
11-
125
# AWS Secrets Managerからパスワード取得
136
SECRET_JSON=$(aws secretsmanager get-secret-value --secret-id oracle-credentials --region us-east-1 --query SecretString --output text)
147
export DB_PASSWORD=$(echo "$SECRET_JSON" | jq -r '.password')

import-schema/README.md

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)