第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何避免 read_sql_query 返回集的數(shù)據(jù)截斷

如何避免 read_sql_query 返回集的數(shù)據(jù)截斷

慕尼黑的夜晚無繁華 2023-07-27 09:54:58
我正在執(zhí)行一個 sql 命令,該命令返回我的數(shù)據(jù)庫 PostgreSQL 提供的創(chuàng)建表語句。為了執(zhí)行 sql 命令,我使用:import io  import json  import pandas as pdimport pandas.io.sql as psqlimport psycopg2 as pgimport boto3from datetime import datetime conn = pg.connect(    host=pgparams['url'],    dbname=pgparams['db'],    user=pgparams['usr'],    password=pgparams['pwd'])  createTable_sql = "postgresql select which returns the create table statement"   df_create_table_script = pd.read_sql_query(createTable_sql ,con=connection) 我的范圍創(chuàng)建一個表。通過 Pandas / Python 執(zhí)行“pd.read_sql_query”命令后,PostgreSql 返回表創(chuàng)建腳本。如果我在 pgsql 解釋器(例如 pgadmin 等)中執(zhí)行“createTable_sql”,它工作正常,結(jié)果我只有一列具有預(yù)期的創(chuàng)建表語句,或者只是一個長度為 512 個字符的純字符串?!癱reateTable_sql”變量的內(nèi)容是:    createTable_sql= "SELECT cast ('CREATE TABLE dbo.table1 (" ...      createTable_sql= createTable_sql + "|| string_agg(pa.attname || ' ' || pg_catalog.format_type(pa.atttypid, pa.atttypmod)|| coalesce(' DEFAULT ' || (select pg_catalog.pg_get_expr(d.adbin, d.adrelid) from pg_catalog.pg_attrdef d where d.adrelid = pa.attrelid and d.adnum = pa.attnum and pa.atthasdef), '') || ' ' || case pa.attnotnull when true then 'NOT NULL' else 'NULL' end, ',')"    createTable_sql= createTable_sql + " as column_from_script from pg_catalog.pg_attribute pa join pg_catalog.pg_class pc on   pc.oid = pa.attrelid    and pc.relname = 'tabl1_source' join pg_catalog.pg_namespace pn on  pn.oid = pc.relnamespaceand pn.nspname = 'dbo' where pa.attnum > 0  and not pa.attisdropped group by    pn.nspname,     pc.relname,     pa.attrelid;"執(zhí)行這個sql命令的結(jié)果應(yīng)該是: CREATE TABLE dbo.table1 (col1 datatype, col2, datatype, ....etc) -total number of charters from script is 512.我的問題是 Pandas read_sql_query 或 read_sql 對于返回的數(shù)據(jù)集有限制(或者至少是我認為的)。我期望返回或讀取的數(shù)據(jù)集有 512 個字符,但 read_sql 方法正在截斷它。當(dāng)我嘗試訪問 Postgresql (數(shù)據(jù)庫引擎)返回的結(jié)果時,我得到的結(jié)果是:' CREATE TABLE dbo.tabl1 (col1...' 因此,我只擁有在前幾個字符后被截斷的內(nèi)容,而不是全文(代表表創(chuàng)建腳本)。最初我認為它只是在使用 print() 函數(shù)獲取返回結(jié)果時被截斷,但值本身也被截斷了。但 table_script 內(nèi)容仍然被截斷,如下所示:' 創(chuàng)建表 dbo.tabl1 (col1...'有什么方法可以檢索響應(yīng)集,即可以具有數(shù)據(jù)類型定義(例如 Varchar(1000) 或 STR)的單個列(例如 Col1)?
查看完整描述

1 回答

?
慕后森

TA貢獻1802條經(jīng)驗 獲得超5個贊

如果使用 using 運行相同的查詢工作正常,也許可以嘗試直接從?pgadmin運行查詢 psycopg2嘗試使用以下代碼塊代替pandas:


cur = conn.cursor()

cur.execute(createTable_sql)

result = cur.fetchall()


查看完整回答
反對 回復(fù) 2023-07-27
  • 1 回答
  • 0 關(guān)注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號