質問編集履歴

7

本文の2文字修正

2024/09/24 19:47

投稿

kanchiru
kanchiru

スコア3

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 REP_TEST.DUMMY_F3 (A,B) VALUES ('A01', 'B000001')")
82
+ cursor.execute("INSERT INTO R_TEST.DUMMY_F3 (A,B) VALUES ('A01', 'B000001')")
83
83
  ```
84
84
 
85
85
  ### 実行結果

6

変数名の変更

2024/09/22 23:14

投稿

kanchiru
kanchiru

スコア3

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_mag = pd.DataFrame( [ {'A': 'A001', 'B':'B000001'}, {'A': 'A002', 'B':'B000002'} ] )
29
+ df = pd.DataFrame( [ {'A': 'A001', 'B':'B000001'}, {'A': 'A002', 'B':'B000002'} ] )
30
- print(df_mag)
30
+ print(df)
31
- print(df_mag.dtypes)
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_mag.to_sql(
36
+ df.to_sql(
37
37
  name=table_name,
38
38
  con=con,
39
39
  if_exists='replace',

5

追記部分の修正

2024/09/10 23:04

投稿

kanchiru
kanchiru

スコア3

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

2024/09/10 23:04

投稿

kanchiru
kanchiru

スコア3

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
- , index=False
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空行の修正

2024/09/09 08:45

投稿

kanchiru
kanchiru

スコア3

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

説明の追記

2024/09/09 08:43

投稿

kanchiru
kanchiru

スコア3

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

本文の説明の追加。

2024/09/09 08:21

投稿

kanchiru
kanchiru

スコア3

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