首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python读取CLOB数据

python读取CLOB数据
EN

Stack Overflow用户
提问于 2019-06-12 03:30:25
回答 1查看 2.9K关注 0票数 3

我正在尝试从具有一个CLOB列的Oracle表中读取数据。我可以使用数据创建数据帧,但我必须维护与数据库的连接。

代码语言:javascript
复制
df = pd.read_sql("""
select 
COURSE_NUMB,
COURSE_DESCRIPTION
from COURSE_DATA
""",conn)

df.head(1)

COURSE_NUMB   COURSE_DESCRIPTION
1             Lorem ipsum dolor sit amet, consectetur....

关闭数据库连接后,CLOB数据不再可用。

代码语言:javascript
复制
conn.close()
df.head()

DatabaseError: DPI-1040: LOB was already closed

我尝试过复制数据帧或将其导出为json文件,但复制或导出中仍然缺少CLOB数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-12 12:26:09

我们必须在CLOB对象上调用read()来将它的值读入DataFrame:

代码语言:javascript
复制
### Set up table with CLOB data
SQL> DESC course_data
Name               Null? Type   
------------------ ----- ------ 
COURSE_NUMB              NUMBER 
COURSE_DESCRIPTION       CLOB   

SQL> SELECT * FROM course_data;

COURSE_NUMB COURSE_DESCRIPTION                                                              
----------- -------------------------------------------
          1 Lorem ipsum dolor sit amet, consectetur....   

### Python code
df = pd.DataFrame()

cursor = conn.cursor()
cursor.execute(""" select COURSE_NUMB, COURSE_DESCRIPTION from COURSE_DATA """)

for row in cursor:
  # row[0] = COURSE_NUMB
  # row[1] = COURSE_DESCRIPTION - note the call to "read()" on the CLOB
  df_tmp = pd.DataFrame([[row[0], row[1].read()]],
                        columns=["COURSE_NUMB", "COURSE_DESCRIPTION"])
  df = df.append(df_tmp, ignore_index=True)

print ("***Before conn.close()")
print(df.head(1))
conn.close()
print ("\n***After conn.close()")
print(df.head())

### Output
$ python test.py
***Before conn.close()
   COURSE_NUMB                           COURSE_DESCRIPTION
0            1  Lorem ipsum dolor sit amet, consectetur....

***After conn.close()
   COURSE_NUMB                           COURSE_DESCRIPTION
0            1  Lorem ipsum dolor sit amet, consectetur....
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56550576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档