質問編集履歴
7
本文の2文字修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -79,7 +79,7 @@
|
|
79
79
|
query = """SELECT * FROM DUMMY_F3"""
|
80
80
|
df = pd.read_sql(query, con=engine)
|
81
81
|
|
82
|
-
cursor.execute("INSERT INTO R
|
82
|
+
cursor.execute("INSERT INTO R_TEST.DUMMY_F3 (A,B) VALUES ('A01', 'B000001')")
|
83
83
|
```
|
84
84
|
|
85
85
|
### 実行結果
|
6
変数名の変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -26,14 +26,14 @@
|
|
26
26
|
|
27
27
|
engine = create_engine("oracle+oracledb://R_TEST:***@DB001:1521/?service_name=TST19C", echo=True)
|
28
28
|
|
29
|
-
df
|
29
|
+
df = pd.DataFrame( [ {'A': 'A001', 'B':'B000001'}, {'A': 'A002', 'B':'B000002'} ] )
|
30
|
-
print(df
|
30
|
+
print(df)
|
31
|
-
print(df
|
31
|
+
print(df.dtypes)
|
32
32
|
|
33
33
|
table_name="R_TEST.DUMMY_F3"
|
34
34
|
|
35
35
|
with engine.connect() as con:
|
36
|
-
df
|
36
|
+
df.to_sql(
|
37
37
|
name=table_name,
|
38
38
|
con=con,
|
39
39
|
if_exists='replace',
|
5
追記部分の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
python-oracledbを使って、Oracle Databaseのテーブルに値を書き込みたいのですが、実行してもデータベースに値が反映されません。
|
6
6
|
エラーメッセージはでないので、create_engineで echo=True にしています。
|
7
7
|
select(下記)はできていますので、データベースの接続は問題ありません。
|
8
|
-
また、
|
8
|
+
また、cursor.execute(下記)もできました。
|
9
9
|
|
10
10
|
ソースでなく、DB側の設定の問題なのでしょうか?
|
11
11
|
そのためソースのほかに、以下に実行結果、テーブル定義を記しました。
|
4
追記。cursor.execute
test
CHANGED
File without changes
|
test
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
python-oracledbを使って、Oracle Databaseのテーブルに値を書き込みたいのですが、実行してもデータベースに値が反映されません。
|
6
6
|
エラーメッセージはでないので、create_engineで echo=True にしています。
|
7
7
|
select(下記)はできていますので、データベースの接続は問題ありません。
|
8
|
+
また、
|
8
9
|
|
9
10
|
ソースでなく、DB側の設定の問題なのでしょうか?
|
10
11
|
そのためソースのほかに、以下に実行結果、テーブル定義を記しました。
|
@@ -33,11 +34,11 @@
|
|
33
34
|
|
34
35
|
with engine.connect() as con:
|
35
36
|
df_mag.to_sql(
|
36
|
-
name=table_name,
|
37
|
+
name=table_name,
|
37
38
|
con=con,
|
38
|
-
if_exists='replace'
|
39
|
+
if_exists='replace',
|
39
|
-
# if_exists='append'
|
40
|
+
# if_exists='append',
|
40
|
-
|
41
|
+
index=False
|
41
42
|
)
|
42
43
|
```
|
43
44
|
|
@@ -72,10 +73,13 @@
|
|
72
73
|
|
73
74
|
##### 上記の詳細・結果
|
74
75
|
- if_exists='replace'と'append'の両方とも同じ結果でした。
|
75
|
-
- selectはできました
|
76
|
+
- selectはできました。
|
77
|
+
- また、cursor.executeで、insert intoもできました。
|
76
78
|
```python
|
77
79
|
query = """SELECT * FROM DUMMY_F3"""
|
78
80
|
df = pd.read_sql(query, con=engine)
|
81
|
+
|
82
|
+
cursor.execute("INSERT INTO REP_TEST.DUMMY_F3 (A,B) VALUES ('A01', 'B000001')")
|
79
83
|
```
|
80
84
|
|
81
85
|
### 実行結果
|
3
結果log空行の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -79,7 +79,7 @@
|
|
79
79
|
```
|
80
80
|
|
81
81
|
### 実行結果
|
82
|
-
|
82
|
+
|
83
83
|
> . A B
|
84
84
|
> 0 A001 B000001
|
85
85
|
> 1 A002 B000002
|
@@ -125,9 +125,9 @@
|
|
125
125
|
> FROM all_objects a_objects
|
126
126
|
> WHERE a_objects.owner = :owner_1 AND a_objects.object_type IN (:object_type_1_1, :object_type_1_2) AND a_objects.object_name IN (:filter_names_1)
|
127
127
|
> 2024-09-09 16:29:32,083 INFO sqlalchemy.engine.Engine [generated in 0.00856s] {'owner_1': 'R_TEST', 'object_type_1_1': 'TABLE', 'object_type_1_2': 'VIEW', 'filter_names_1': 'R_TEST.DUMMY_F3'}
|
128
|
-
>
|
128
|
+
>
|
129
129
|
> ... 略 ...
|
130
|
-
>
|
130
|
+
>
|
131
131
|
> 2024-09-09 16:29:32,374 INFO sqlalchemy.engine.Engine [generated in 0.06879s] {'owner_1': 'R_TEST', 'table_name_1': 'BIN$%', 'owner_2': 'R_TEST', 'mview_name_1': 'BIN$%', 'filter_names_1': 'R_TEST.DUMMY_F3'}
|
132
132
|
> 2024-09-09 16:29:32,379 INFO sqlalchemy.engine.Engine SELECT a_tables.table_name, a_tables.compression, a_tables.compress_for
|
133
133
|
> FROM all_tables a_tables
|
@@ -141,8 +141,8 @@
|
|
141
141
|
> "A" CLOB,
|
142
142
|
> "B" CLOB
|
143
143
|
> )
|
144
|
-
>
|
144
|
+
>
|
145
|
-
>
|
145
|
+
>
|
146
146
|
> 2024-09-09 16:29:32,593 INFO sqlalchemy.engine.Engine [no key 0.00473s] {}
|
147
147
|
> 2024-09-09 16:29:32,639 INFO sqlalchemy.engine.Engine INSERT INTO "R_TEST.DUMMY_F3" ("A", "B") VALUES (:A, :B)
|
148
148
|
> 2024-09-09 16:29:32,706 INFO sqlalchemy.engine.Engine [generated in 0.06744s] [{'A': 'A001', 'B': 'B000001'}, {'A': 'A002', 'B': 'B000002'}]
|
2
説明の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
python-oracledbを使って、DataFrameの内容をDataFrame.to_sql()でOracle Databaseのテーブルに値を書き込みたい。
|
3
3
|
|
4
4
|
### 発生している問題・分からないこと
|
5
|
-
python-oracledbを使って、Oracle Databaseのテーブルに値を書き込みたい、値が反映されません。
|
5
|
+
python-oracledbを使って、Oracle Databaseのテーブルに値を書き込みたいのですが、実行してもデータベースに値が反映されません。
|
6
6
|
エラーメッセージはでないので、create_engineで echo=True にしています。
|
7
|
+
select(下記)はできていますので、データベースの接続は問題ありません。
|
8
|
+
|
7
9
|
ソースでなく、DB側の設定の問題なのでしょうか?
|
8
10
|
そのためソースのほかに、以下に実行結果、テーブル定義を記しました。
|
9
11
|
調べる手掛かりさえもわからなくなってしまったので、質問させていただきます。
|
1
本文の説明の追加。
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
調べる手掛かりさえもわからなくなってしまったので、質問させていただきます。
|
10
10
|
手がかりだけでも教えていただければ幸いです。
|
11
11
|
|
12
|
+
(実際のテーブルはもっとカラムが多く、型も DATE、NUMBER、VARCHAR2 の3種を使っています)
|
12
13
|
|
13
14
|
|
14
15
|
|