欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

用Python_OracleDB 的調(diào)用Oracle存儲(chǔ)過程返回Cursor的方法:TaoToken 統(tǒng)一 Key 通道下的可復(fù)制配置與驗(yàn)證

用Python_OracleDB 的調(diào)用Oracle存儲(chǔ)過程返回Cursor的方法:TaoToken 統(tǒng)一 Key 通道下的可復(fù)制配置與驗(yàn)證 1. Python 調(diào)用 Oracle 存儲(chǔ)過程返回 Cursor 的真實(shí)場(chǎng)景與坑點(diǎn)如果你正在用 Python 連 Oracle并且存儲(chǔ)過程里返回的是SYS_REFCURSOR那你大概率會(huì)遇到一個(gè)很典型的問題普通cursor.execute()執(zhí)行完拿不到結(jié)果集或者拿到的對(duì)象不是可迭代的行而是一個(gè)綁定變量句柄。這個(gè)場(chǎng)景在報(bào)表查詢、批量數(shù)據(jù)導(dǎo)出、老系統(tǒng)對(duì)接里非常常見尤其是 Oracle 存儲(chǔ)過程把查詢結(jié)果通過OUT參數(shù)以游標(biāo)形式吐出來的時(shí)候。我先把結(jié)論說清楚Python 的oracledb驅(qū)動(dòng)也就是原來cx_Oracle的新名字調(diào)用返回 Cursor 的存儲(chǔ)過程核心動(dòng)作只有三步——用cursor.var()聲明一個(gè)游標(biāo)類型的綁定變量、把它作為OUT參數(shù)傳進(jìn)begin ... end;匿名塊、執(zhí)行完之后直接對(duì)這個(gè)游標(biāo)變量做for row in cursor_var迭代。聽起來簡(jiǎn)單但真正卡人的地方在于連接池怎么配、綁定變量類型怎么聲明、字段映射怎么對(duì)齊、異常怎么捕獲。這幾個(gè)點(diǎn)任何一個(gè)沒處理好你看到的報(bào)錯(cuò)就是ORA-01036、DPI-1010、ORA-06550這類讓人頭大的信息。這篇內(nèi)容聚焦的就是這條完整鏈路從連接串配置到存儲(chǔ)過程調(diào)用再到游標(biāo)讀取和異常處理。我會(huì)給出可以直接復(fù)制的配置片段也會(huì)用一個(gè)最小的存儲(chǔ)過程來驗(yàn)證 Cursor 返回是否正常。如果你本地已經(jīng)裝好了 Oracle 客戶端和 Python 環(huán)境跟著走一遍就能復(fù)現(xiàn)。另外說明一下本文里涉及模型調(diào)用通道的部分統(tǒng)一走 TaoToken 的 Key 通道來做演示目的是讓配置片段保持一致的鑒權(quán)方式方便你在同一套環(huán)境里既跑數(shù)據(jù)庫調(diào)用、又跑模型輔助排查。數(shù)據(jù)庫本身還是連你自己的 Oracle 實(shí)例TaoToken 只負(fù)責(zé)模型側(cè)的統(tǒng)一入口兩者不混。先明確幾個(gè)前置條件避免你走到一半發(fā)現(xiàn)環(huán)境不對(duì)Python 3.9 及以上推薦 3.11。安裝oracledbpip install oracledb。注意不要再用cx_Oracle新項(xiàng)目直接用oracledb它是官方維護(hù)的。Oracle 客戶端庫Instant Client要能被找到或者用 thin 模式。oracledb默認(rèn) thin 模式不需要 Instant Client但如果你要用某些高級(jí)特性比如特定的字符集、外部認(rèn)證還是得配lib_dir。有一個(gè)可用的 Oracle 實(shí)例里面有建存儲(chǔ)過程的權(quán)限。我試過在 thin 模式下直接連 Oracle 19c 和 21c基本沒問題。但如果你連的是比較老的 11gthin 模式可能不支持那就得裝 Instant Client 并設(shè)置ORACLE_CLIENT_LIB_DIR或者初始化時(shí)傳lib_dir。存儲(chǔ)過程這邊假設(shè)我們有一個(gè)測(cè)試用的過程簽名大概是這樣CREATE OR REPLACE PROCEDURE test1( param1 IN VARCHAR2, param2 IN VARCHAR2, p_cursor OUT SYS_REFCURSOR ) AS BEGIN OPEN p_cursor FOR SELECT a1 AS col_a, a2 AS col_b FROM dual UNION ALL SELECT b1, b2 FROM dual; END; /這個(gè)過程的邏輯很簡(jiǎn)單接收兩個(gè)入?yún)⒋蜷_一個(gè)游標(biāo)返回兩行數(shù)據(jù)。用它來驗(yàn)證 Cursor 返回是最小可復(fù)現(xiàn)的。你可以在 SQL Developer 或者 sqlplus 里先跑一遍確認(rèn)過程本身沒問題再去 Python 里調(diào)。很多人第一次調(diào)的時(shí)候會(huì)把OUT SYS_REFCURSOR當(dāng)成普通返回值處理寫成result cursor.callproc(...)結(jié)果發(fā)現(xiàn)拿不到行。這就是沒理解 Oracle 的游標(biāo)是綁定變量機(jī)制。正確做法是用cursor.var(oracledb.CURSOR)聲明一個(gè)游標(biāo)變量傳進(jìn)去執(zhí)行后迭代它。還有一個(gè)高頻坑連接池的dsn寫法。192.168.3.169:1521/orclpdb1這種是 EZConnect 格式host:port/service_name。如果你用的是 SID 而不是 service name得寫成host:port/SID或者用完整的(DESCRIPTION...)。寫錯(cuò)了就是ORA-12514或者DPY-6005。下面進(jìn)入具體配置。我會(huì)先講 TaoToken 的前置準(zhǔn)備再給可復(fù)制的連接與調(diào)用代碼然后是驗(yàn)證和排錯(cuò)。2. TaoToken 統(tǒng)一 Key 通道的前置準(zhǔn)備與模型輔助排查這一節(jié)說清楚 TaoToken 在這套流程里扮演什么角色。你調(diào) Oracle 存儲(chǔ)過程本身不需要 TaoToken數(shù)據(jù)庫連接是直連你的 Oracle 實(shí)例。但實(shí)際開發(fā)中你經(jīng)常需要讓模型幫你解釋報(bào)錯(cuò)、生成 SQL、檢查綁定變量寫法這時(shí)候如果每個(gè)工具都單獨(dú)配 Key會(huì)很亂。TaoToken 提供的是一個(gè)統(tǒng)一的 Key 通道把模型調(diào)用收斂到一個(gè)入口Base URL 和 Key 配一次多個(gè)工具復(fù)用。官網(wǎng)入口在這里https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。你可以先注冊(cè)拿到 Key后面配置里會(huì)用到。拿到 Key 之后模型側(cè)的 Base URL 統(tǒng)一用https://taotoken.net/api注意這個(gè)地址不帶 UTM 參數(shù)是給程序調(diào)用的。Key 的格式一般是一串以sk-開頭的字符串具體以你控制臺(tái)里顯示的為準(zhǔn)。如果你只是想讓模型幫你排查 Oracle 報(bào)錯(cuò)最直接的方式是打開模型對(duì)話頁面把報(bào)錯(cuò)原文貼進(jìn)去。模型對(duì)話入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。這個(gè)頁面適合快速問一句“這個(gè) ORA-01036 是什么原因”不用寫代碼。如果你是要長(zhǎng)期做編碼、寫 Agent、跑自動(dòng)化腳本那更適合用 Coding Plan。Coding Plan 入口https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite 。它的定位是給編碼場(chǎng)景用的套餐配合 Claude Code、Cline 這類工具比較順。Key 的管理在控制臺(tái)https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。你可以在這里創(chuàng)建、查看、吊銷 Key。API Keys 頁面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite 新建 Key 就在這里。接入文檔https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有各語言的調(diào)用示例配環(huán)境變量、改 Base URL 的寫法都能查到。如果你用的是 Claude Code它有自己的接入方式參考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite 。這個(gè)頁面講的是怎么把 Claude Code 接到統(tǒng)一通道上。這里要強(qiáng)調(diào)一點(diǎn)TaoToken 是模型調(diào)用的統(tǒng)一入口不是數(shù)據(jù)庫代理也不是什么中轉(zhuǎn)。你的 Oracle 連接串、賬號(hào)密碼、存儲(chǔ)過程調(diào)用全都走你自己的網(wǎng)絡(luò)和數(shù)據(jù)庫跟 TaoToken 無關(guān)。TaoToken 只處理模型 API 的鑒權(quán)收斂。把這兩件事分清楚后面配置就不會(huì)混。前置準(zhǔn)備清單注冊(cè)并拿到 TaoToken Key。確認(rèn)模型 Base URL 是https://taotoken.net/api。本地 Python 環(huán)境裝好oracledb。Oracle 實(shí)例可連測(cè)試存儲(chǔ)過程已創(chuàng)建。如果要讓模型輔助排查準(zhǔn)備好模型對(duì)話或 Coding Plan 的入口。環(huán)境變量建議這樣設(shè)避免 Key 硬編碼在代碼里export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/apiWindows 下用set或者系統(tǒng)環(huán)境變量界面設(shè)置。設(shè)完之后Python 里用os.environ.get(TAOTOKEN_API_KEY)讀取。模型側(cè)的最小驗(yàn)證可以用 curl 快速確認(rèn) Key 通不通curl https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY返回模型列表就說明 Key 和 Base URL 都對(duì)。這一步不通后面模型輔助排查就別指望了。常見問題是 Key 復(fù)制時(shí)帶了空格或者 Base URL 寫成了帶 UTM 的地址。記住程序調(diào)用用https://taotoken.net/api不帶參數(shù)。數(shù)據(jù)庫側(cè)的前置確認(rèn)oracledb版本python -c import oracledb; print(oracledb.__version__)輸出類似2.5.0就正常。如果報(bào)ModuleNotFoundError回去pip install oracledb。到這里模型通道和數(shù)據(jù)庫環(huán)境都準(zhǔn)備好了。下一節(jié)進(jìn)入可復(fù)制的配置片段包括連接池、綁定變量聲明、存儲(chǔ)過程調(diào)用。3. 可復(fù)制的連接池與存儲(chǔ)過程調(diào)用配置片段這一節(jié)是全文的核心給出可以直接復(fù)制運(yùn)行的代碼。我會(huì)把連接池配置、游標(biāo)變量聲明、存儲(chǔ)過程調(diào)用、結(jié)果讀取拆開講每一段都標(biāo)清楚路徑和參數(shù)含義。先看連接池配置。用oracledb.create_pool()創(chuàng)建池參數(shù)含義如下import oracledb pool oracledb.create_pool( userdamao, passwordwoaiwojia, dsn192.168.3.169:1521/orclpdb1, min1, max4, increment1, )user和password是你的 Oracle 賬號(hào)。dsn是 EZConnect 格式host:port/service_name。min是池啟動(dòng)時(shí)的最小連接數(shù)max是最大連接數(shù)increment是每次擴(kuò)容增加的連接數(shù)。這幾個(gè)值按你實(shí)際并發(fā)調(diào)本地測(cè)試min1, max4足夠。如果你要用 SQLAlchemy可以這樣接from sqlalchemy import create_engine from sqlalchemy.pool import NullPool engine create_engine( oracleoracledb://, creatorpool.acquire, poolclassNullPool, )注意creatorpool.acquire是把池的獲取連接方法交給 SQLAlchemypoolclassNullPool是避免 SQLAlchemy 再套一層池。這個(gè)組合在需要復(fù)用 oracledb 池的場(chǎng)景下比較常見。接下來是調(diào)用存儲(chǔ)過程的關(guān)鍵部分。假設(shè)存儲(chǔ)過程簽名是test1(param1 IN VARCHAR2, param2 IN VARCHAR2, p_cursor OUT SYS_REFCURSOR)調(diào)用代碼如下connect pool.acquire() cursor connect.cursor() # 聲明游標(biāo)類型的綁定變量 cursor_var cursor.var(oracledb.CURSOR) cursor.execute( begin test1(:param1, :param2, :p_cursor); end; , param1a1, param2a2, p_cursorcursor_var, ) # 迭代游標(biāo)變量拿結(jié)果 for row in cursor_var: print(row , row) cursor.close() connect.close() pool.close()這里有幾個(gè)點(diǎn)必須說清楚第一cursor.var(oracledb.CURSOR)聲明的是游標(biāo)類型綁定變量。oracledb.CURSOR是常量對(duì)應(yīng) Oracle 的SYS_REFCURSOR。不要寫成oracledb.NUMBER或者oracledb.STRING類型不對(duì)會(huì)報(bào)DPI-1010或者ORA-06550。第二匿名塊里用:p_cursor作為占位符執(zhí)行時(shí)通過關(guān)鍵字參數(shù)p_cursorcursor_var傳入。參數(shù)名要和占位符一致順序無所謂因?yàn)槭前疵纸壎ǖ?。第三?zhí)行完之后直接for row in cursor_var迭代。cursor_var本身是可迭代的每次迭代返回一行行是 tuple 或者命名元組取決于你的rowfactory設(shè)置。如果你需要拿到字段名可以這樣columns [d[0] for d in cursor_var.description] print(columns , columns) for row in cursor_var: print(dict(zip(columns, row)))cursor_var.description返回字段描述每個(gè)元素第一個(gè)是字段名。這樣就能把行映射成字典方便后續(xù)處理。如果你用的是 SQLAlchemy 的engine.connect()調(diào)用方式類似但要注意連接是從 engine 拿的with engine.connect() as conn: raw conn.connection cur raw.cursor() cur_var cur.var(oracledb.CURSOR) cur.execute( begin test1(:p1, :p2, :pc); end;, p1a1, p2a2, pccur_var, ) for row in cur_var: print(row) cur.close()conn.connection拿到的是底層 oracledb 連接這樣才能用cursor.var()。SQLAlchemy 的text()包裝層不支持游標(biāo)綁定變量所以必須下沉到原生連接。關(guān)于參數(shù)類型如果你的存儲(chǔ)過程入?yún)⑹菙?shù)字Python 側(cè)傳 int 或 float 就行oracledb 會(huì)自動(dòng)映射。如果是日期傳datetime.datetime對(duì)象。如果是 CLOB/BLOB需要額外聲明類型這里不展開。一個(gè)完整的可運(yùn)行腳本把上面拼起來import oracledb def main(): pool oracledb.create_pool( userdamao, passwordwoaiwojia, dsn192.168.3.169:1521/orclpdb1, min1, max4, increment1, ) connect pool.acquire() try: cursor connect.cursor() cursor_var cursor.var(oracledb.CURSOR) cursor.execute( begin test1(:param1, :param2, :p_cursor); end; , param1a1, param2a2, p_cursorcursor_var, ) columns [d[0] for d in cursor_var.description] print(columns , columns) for row in cursor_var: print(row , row) cursor.close() finally: connect.close() pool.close() if __name__ __main__: main()這個(gè)腳本直接跑能打印出字段名和兩行數(shù)據(jù)就說明整條鏈路通了。如果你在配置模型輔助排查比如用 Cline 或 Claude Code需要寫全三件套Base URL、Key、Model ID。以 Cline 的 MCP 配置為例JSON 片段如下{ mcpServers: { taotoken: { command: npx, args: [-y, taotoken/mcp-server], env: { TAOTOKEN_BASE_URL: https://taotoken.net/api, TAOTOKEN_API_KEY: sk-你的key, TAOTOKEN_MODEL: claude-3-5-sonnet } } } }這里TAOTOKEN_BASE_URL、TAOTOKEN_API_KEY、TAOTOKEN_MODEL就是三件套缺一不可。Model ID 按你實(shí)際可用的填控制臺(tái)里能查到。如果你用 Codex它的auth.json配置類似{ base_url: https://taotoken.net/api, api_key: sk-你的key, model: claude-3-5-sonnet }路徑一般在~/.codex/auth.json或者項(xiàng)目根目錄的.codex/auth.json按你的 Codex 版本為準(zhǔn)。這些配置的作用是讓模型工具能通過統(tǒng)一通道調(diào)用跟 Oracle 調(diào)用是兩條獨(dú)立的線。你排查 Oracle 報(bào)錯(cuò)時(shí)可以把報(bào)錯(cuò)貼給模型讓它解釋。配置片段到這里。下一節(jié)講怎么驗(yàn)證請(qǐng)求成功、怎么確認(rèn) Cursor 返回正確。4. 驗(yàn)證請(qǐng)求與成功結(jié)果從執(zhí)行到字段映射配置寫完之后必須驗(yàn)證。驗(yàn)證分兩層模型通道通不通數(shù)據(jù)庫調(diào)用通不通。先快速過模型通道再重點(diǎn)講數(shù)據(jù)庫。模型通道驗(yàn)證前面 curl 已經(jīng)給過。再補(bǔ)一個(gè) Python 版本import os import requests resp requests.get( https://taotoken.net/api/v1/models, headers{Authorization: fBearer {os.environ[TAOTOKEN_API_KEY]}}, timeout10, ) print(resp.status_code) print(resp.json())返回 200 和模型列表說明 Key 和 Base URL 都對(duì)。如果 401檢查 Key如果連接超時(shí)檢查網(wǎng)絡(luò)。數(shù)據(jù)庫調(diào)用驗(yàn)證跑上一節(jié)的完整腳本。預(yù)期輸出columns [COL_A, COL_B] row (a1, a2) row (b1, b2)字段名是大寫因?yàn)?Oracle 默認(rèn)把未加引號(hào)的標(biāo)識(shí)符轉(zhuǎn)大寫。行是 tuple順序和description一致。如果你看到這個(gè)輸出說明 Cursor 返回、字段映射、游標(biāo)迭代都正常。如果存儲(chǔ)過程返回的字段有別名比如SELECT col_a AS myCol那description里就是myCol大小寫按你寫的來。這點(diǎn)在做字段映射時(shí)要注意別硬編碼大寫。驗(yàn)證字段映射可以加一段類型檢查for d in cursor_var.description: print(name , d[0], type , d[1], size , d[3])d[1]是類型碼d[3]是顯示大小。這樣你能確認(rèn)每個(gè)字段的類型是否符合預(yù)期。比如VARCHAR2對(duì)應(yīng)oracledb.DB_TYPE_VARCHARNUMBER對(duì)應(yīng)oracledb.DB_TYPE_NUMBER。驗(yàn)證多行返回把存儲(chǔ)過程改成返回 100 行看迭代是否完整CREATE OR REPLACE PROCEDURE test_many( p_cursor OUT SYS_REFCURSOR ) AS BEGIN OPEN p_cursor FOR SELECT LEVEL AS n, row_ || LEVEL AS label FROM dual CONNECT BY LEVEL 100; END; /Python 側(cè)cursor_var cursor.var(oracledb.CURSOR) cursor.execute(begin test_many(:pc); end;, pccursor_var) count 0 for row in cursor_var: count 1 print(total rows , count)輸出total rows 100就說明大結(jié)果集也能正常迭代。注意游標(biāo)是流式讀取的不會(huì)一次性把 100 行全加載到內(nèi)存這對(duì)大結(jié)果集友好。驗(yàn)證異常處理故意傳錯(cuò)參數(shù)類型try: cursor.execute( begin test1(:p1, :p2, :pc); end;, p1123, # 故意傳數(shù)字存儲(chǔ)過程期望 VARCHAR2 p2a2, pccursor_var, ) except oracledb.DatabaseError as e: error, e.args print(code , error.code) print(message , error.message)預(yù)期捕獲到ORA-06502或者類型轉(zhuǎn)換相關(guān)錯(cuò)誤。這樣你能確認(rèn)異常捕獲路徑是通的。驗(yàn)證連接池復(fù)用連續(xù)調(diào)用多次看連接是否正常歸還for i in range(5): conn pool.acquire() cur conn.cursor() cv cur.var(oracledb.CURSOR) cur.execute(begin test1(:p1, :p2, :pc); end;, p1a, p2b, pccv) rows list(cv) print(fround {i}, rows {len(rows)}) cur.close() conn.close()輸出 5 輪每輪 2 行說明池的獲取和歸還正常。如果池耗盡會(huì)卡在pool.acquire()這時(shí)候檢查max是不是太小或者有沒有連接沒關(guān)。驗(yàn)證成功之后把結(jié)果和預(yù)期對(duì)照。我一般會(huì)寫一個(gè)簡(jiǎn)單的斷言assert columns [COL_A, COL_B] assert len(rows) 2 assert rows[0] (a1, a2)斷言通過整條鏈路就算驗(yàn)證完畢。這里再提一下模型輔助驗(yàn)證的用法。如果你在驗(yàn)證過程中遇到報(bào)錯(cuò)可以把報(bào)錯(cuò)和你的代碼片段一起貼到模型對(duì)話里讓它幫你定位。比如貼DPI-1010: invalid binding type模型會(huì)告訴你綁定變量類型聲明錯(cuò)了。這種用法比你自己翻文檔快。驗(yàn)證階段常見的結(jié)果異常輸出columns []說明游標(biāo)沒打開存儲(chǔ)過程可能沒執(zhí)行到OPEN檢查過程邏輯。輸出行數(shù)不對(duì)檢查存儲(chǔ)過程的WHERE條件或者綁定變量是否傳對(duì)。字段名亂碼檢查數(shù)據(jù)庫字符集和客戶端字符集是否一致。迭代時(shí)報(bào)DPI-1067游標(biāo)已經(jīng)被關(guān)閉或者被消費(fèi)過檢查是否重復(fù)迭代。下一節(jié)專門講這些報(bào)錯(cuò)的排查。5. 本篇常見報(bào)錯(cuò)排查401、DPI-1010、ORA-01036 與游標(biāo)讀取異常這一節(jié)按真實(shí)報(bào)錯(cuò)來對(duì)照給出原因和修復(fù)動(dòng)作。我把最常見的幾類列出來你遇到哪個(gè)查哪個(gè)。401 Unauthorized模型通道報(bào)錯(cuò)原文{error: {message: Invalid API key, type: invalid_request_error}}原因TaoToken Key 不對(duì)或者請(qǐng)求頭沒帶對(duì)。檢查Authorization: Bearer sk-xxx格式Key 前后有沒有空格。Base URL 必須是https://taotoken.net/api不要帶 UTM 參數(shù)。如果 Key 剛創(chuàng)建等幾秒再試。修復(fù)echo $TAOTOKEN_API_KEY curl https://taotoken.net/api/v1/models -H Authorization: Bearer $TAOTOKEN_API_KEYlocal proxy failed模型通道報(bào)錯(cuò)原文local proxy failed: dial tcp 127.0.0.1:7890: connect: connection refused原因本地配了代理但代理沒啟動(dòng)或者代理端口不對(duì)。這個(gè)報(bào)錯(cuò)跟 TaoToken 無關(guān)是你本地網(wǎng)絡(luò)配置的問題。檢查環(huán)境變量HTTP_PROXY、HTTPS_PROXY或者工具自己的代理設(shè)置。修復(fù)關(guān)掉代理或者把代理指向正確的端口。如果你不需要代理直接 unsetunset HTTP_PROXY unset HTTPS_PROXYDPI-1010: invalid binding type報(bào)錯(cuò)原文oracledb.exceptions.DatabaseError: DPI-1010: invalid binding type原因綁定變量類型聲明錯(cuò)了。最常見的是把游標(biāo)變量聲明成了oracledb.NUMBER或oracledb.STRING。存儲(chǔ)過程的OUT SYS_REFCURSOR必須用cursor.var(oracledb.CURSOR)。修復(fù)# 錯(cuò)誤 cursor_var cursor.var(oracledb.NUMBER) # 正確 cursor_var cursor.var(oracledb.CURSOR)ORA-01036: illegal variable name/number報(bào)錯(cuò)原文oracledb.exceptions.DatabaseError: ORA-01036: illegal variable name/number原因占位符和傳入?yún)?shù)不匹配。比如匿名塊里寫了:p_cursor但執(zhí)行時(shí)傳的是cursorcursor_var名字對(duì)不上?;蛘哒嘉环麛?shù)量不對(duì)。修復(fù)占位符名字和執(zhí)行參數(shù)名嚴(yán)格一致。# 錯(cuò)誤 cursor.execute(begin test1(:p1, :p2, :pc); end;, param1a, param2b, cursorcursor_var) # 正確 cursor.execute(begin test1(:p1, :p2, :pc); end;, p1a, p2b, pccursor_var)ORA-06550: PLS-00306: wrong number or types of arguments報(bào)錯(cuò)原文oracledb.exceptions.DatabaseError: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to TEST1原因調(diào)用存儲(chǔ)過程時(shí)參數(shù)個(gè)數(shù)或類型不對(duì)。檢查存儲(chǔ)過程簽名確認(rèn)入?yún)⒑统鰠?shù)量、類型匹配。比如過程需要 3 個(gè)參數(shù)你只傳了 2 個(gè)。修復(fù)對(duì)照DESC test1的輸出逐個(gè)核對(duì)參數(shù)。DESC test1;ORA-12514: TNS:listener does not currently know of service報(bào)錯(cuò)原文oracledb.exceptions.DatabaseError: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor原因dsn里的 service name 寫錯(cuò)了。192.168.3.169:1521/orclpdb1里的orclpdb1必須是數(shù)據(jù)庫實(shí)際注冊(cè)的 service name。修復(fù)在數(shù)據(jù)庫服務(wù)器上查SELECT name FROM v$services;用查到的 service name 替換。reading choices 相關(guān)報(bào)錯(cuò)模型通道報(bào)錯(cuò)原文Error reading choices: unexpected end of JSON input原因模型返回的響應(yīng)不完整通常是網(wǎng)絡(luò)中斷或者超時(shí)。也可能是 Base URL 配錯(cuò)返回了非 JSON 內(nèi)容。修復(fù)檢查 Base URL 是否為https://taotoken.net/api加大超時(shí)時(shí)間重試。如果持續(xù)出現(xiàn)換個(gè)模型試試。OAuth 相關(guān)報(bào)錯(cuò)Claude Code 接入報(bào)錯(cuò)原文OAuth token expired or invalid原因Claude Code 的鑒權(quán)過期。如果你是通過統(tǒng)一通道接入檢查配置里的 Key 是否還有效。修復(fù)重新生成 Key更新配置。Claude Code 的接入配置參考前面給的鏈接確認(rèn) Base URL、Key、Model ID 三件套都填對(duì)。游標(biāo)讀取異常DPI-1067報(bào)錯(cuò)原文oracledb.exceptions.InterfaceError: DPI-1067: the cursor has already been closed原因游標(biāo)被重復(fù)迭代或者提前關(guān)閉。比如你先list(cursor_var)消費(fèi)了一遍又for row in cursor_var再消費(fèi)一遍第二次就報(bào)這個(gè)。修復(fù)游標(biāo)只能消費(fèi)一次。需要多次使用就先轉(zhuǎn)成 listrows list(cursor_var) for row in rows: print(row) for row in rows: print(row) # 這樣沒問題游標(biāo)讀取異常結(jié)果為空但沒報(bào)錯(cuò)現(xiàn)象for row in cursor_var一行都不輸出也不報(bào)錯(cuò)。原因存儲(chǔ)過程里的OPEN沒執(zhí)行到或者WHERE條件過濾掉了所有行。也可能是游標(biāo)變量聲明了但沒傳進(jìn)過程。修復(fù)先在 SQL Developer 里直接跑存儲(chǔ)過程確認(rèn)有數(shù)據(jù)返回。再檢查 Python 側(cè)的綁定變量是否傳對(duì)。連接池耗盡現(xiàn)象程序卡在pool.acquire()不返回。原因連接沒歸還池的max太小或者有連接泄漏。修復(fù)確保每次pool.acquire()之后都有connect.close()。用try/finally保證歸還。臨時(shí)加大max看是否緩解。connect pool.acquire() try: # 你的操作 pass finally: connect.close()字段名大小寫不一致現(xiàn)象columns里是大寫但你代碼里按小寫取取不到。原因Oracle 默認(rèn)大寫標(biāo)識(shí)符。修復(fù)統(tǒng)一用大寫或者建表/查詢時(shí)用雙引號(hào)指定大小寫。映射時(shí)用dict(zip(columns, row))按實(shí)際字段名取。row_dict dict(zip(columns, row)) print(row_dict[COL_A])這些報(bào)錯(cuò)覆蓋了大部分場(chǎng)景。遇到?jīng)]列出來的把報(bào)錯(cuò)原文貼到模型對(duì)話里讓它幫你分析。模型對(duì)話入口前面給過這里再放一次方便你復(fù)制https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。排查的時(shí)候有個(gè)原則先確認(rèn)是模型通道的問題還是數(shù)據(jù)庫的問題。模型通道的報(bào)錯(cuò)通常是 401、超時(shí)、JSON 解析失敗數(shù)據(jù)庫的報(bào)錯(cuò)通常是 ORA-、DPI- 開頭。分開定位效率高很多。6. 統(tǒng)一 Key 通道下的接入與驗(yàn)證入口走到這里整條鏈路應(yīng)該已經(jīng)跑通了?;仡櫼幌玛P(guān)鍵動(dòng)作連接池配置用oracledb.create_pool()游標(biāo)變量用cursor.var(oracledb.CURSOR)聲明存儲(chǔ)過程用匿名塊調(diào)用結(jié)果直接迭代游標(biāo)變量。字段映射靠cursor_var.description異常捕獲用oracledb.DatabaseError。如果你還需要把這套流程固化到項(xiàng)目里建議把連接池做成單例避免每次調(diào)用都重建。Key 和連接串走環(huán)境變量不要硬編碼。存儲(chǔ)過程調(diào)用封裝成函數(shù)入?yún)⒑统鰠⒚鞔_。模型側(cè)的統(tǒng)一通道Key 管理在控制臺(tái)接入文檔在文檔頁。需要新建 Key 就去 API Keys 頁面。長(zhǎng)期編碼場(chǎng)景用 Coding Plan快速問報(bào)錯(cuò)用模型對(duì)話。這幾個(gè)入口按你的實(shí)際需求選不用全用。最后給一個(gè)實(shí)用技巧把存儲(chǔ)過程的調(diào)用和模型排查串起來。寫一個(gè)腳本捕獲到oracledb.DatabaseError時(shí)自動(dòng)把報(bào)錯(cuò)和 SQL 片段發(fā)給模型讓它返回可能的原因。這樣排查效率會(huì)高很多。模型調(diào)用走統(tǒng)一通道Base URL 和 Key 配一次就行。如果你在接入過程中卡住優(yōu)先檢查三件套Base URL 是不是https://taotoken.net/apiKey 是不是有效Model ID 是不是可用。這三個(gè)對(duì)了模型通道就通。數(shù)據(jù)庫側(cè)檢查連接串、綁定變量類型、存儲(chǔ)過程簽名。兩邊分開查問題很快能定位。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人妻操逼视频。| 人妻狠狠操| 99色免费视频| 五月开心婷婷网| 99久久66综合| 五月综合无码| 五月天社区婷婷丁香社区| 久久久久九九九九视屏小说88| 久久久性爱视频| 久久亚洲色导航| WwW色婷婷| 欧美性色视频| 日日夜夜小色哥| 色综合中文色综合网| 国精产品一区一区三区免费视频 | 26uuu在线观看| 热久久精品视频网站| 天堂网色色| 国产精品18久久久| 九九99精品视频在线观看| 国产乱妇乱子伦| 久99热| 亚洲春色奇米影视| 欧美交换配乱吟粗大25P| 开心五月婷婷| 超级碰碰91| 亚洲第精品| 久久人人九| 久久综合久色欧美综合狠狠| 国产肥白大熟妇BBBB视频| 欧美三级欧美一级| 成人电影AV在线观看| 天天干天天射综合网| 五月丁香香蕉| eeuss人妻| 人妻在线网站| 综合网色综合| 九九视屏| 激情久久久久久久久| 天堂久久久久天堂网| 热九九精品| 98色花堂98t.R| 五月天影院| 九九久久这里只有精品XB| 久操人妻| 9l视频自拍九色9l视频在线观看| 精品爆操| 影音先锋色婷婷| 香蕉曰比| 夫妻超碰在线| 丁香花综合永久入口| 九九色色| 67194线路二在线观看| 97久久精品| 天天天天天日| 91操在线视频| 91丨九色丨大屁股| 九月丁香很很色| 人妻丰满精品一区二区A片| 婷婷亚洲综合| 好吊兆人妻| 国产欧美熟妇另类久久久 | 琪琪理论片| 日日爱678| 91干视频| 日本五月婷婷久久久六月丁香| 国产99热| 九九热99精品在线| 97色啪| AV性爱网| 夜夜爽天天干| 激情婷婷五月丁香啪啪啪| 青青草视频免费观看| 欧洲色区| 99九九中文字幕视频| 色99婷婷五月天| 香蕉伊人综合| 五月丁香久久综合| 亚洲狠狠干| 色欧美影院| 成人网站免费在线播放| 婷婷成人五月天| 思思久久久婷婷| 色婷婷另类| 久久久五月天婷婷成人网| 婷婷伊人綜合中文| 开心五月婷婷五月| 久久99网| 国产SUV精品一区二区6| 另类视屏| 密乳视频| 狠狠狠狠狠干| 久久婷婷五| 99熟女啪啪视频| 99久久精品色老| 天天爱天天做天天日| 综合婷婷六月| 日本久久人人| 婷婷五月天av小说| 久久婷婷成人视频| 婷婷五月AA五月在线| 色狠狠婷婷| 少妇高潮呻吟A片免费看软件| 性按摩玩人妻HD中文字幕| 在线精品97| wWW九九在线播放| 任你草| 六月婷婷色宗合| 26uuu国产| 婷婷五月丁香五月| 婷婷九月丁香天堂丁香天堂| 黄涩毛片| 综合色图区| 影音先锋 萱萱| 六月婷婷视频| 伊人五月天婷婷| 亚洲无线视频| 青青草婷婷久久| 婷婷久草| 日本三级中国三级99| 亚洲亚洲人成综合网络| 97人人操人人爽| 久久综合天天综合| 精品一二三区久久AAA片| 色九综合| 色五狠狠| 亚洲av另类在线观看| 亚洲午夜视频| 天天操天天干天天日| 丰满少妇猛烈A片免费看观看| 亚州精品成人片| 五月天免费色| 婷婷五月天影院| 久久一伦| www激情婷婷com| 日本三久久| 日本视频久久| 欧美综合五月丁香六月婷| 亚洲人妻Av| 色色色色色色综合网| 亚洲操逼片| 日欧大屏操| 成人在线观看国产| 丁香婷婷啪啪啪| 亚洲无码99| 曰曰久久| 色色色综合色| 天天操天天日天天爱| 婷婷五月花西瓜| 国产精品激情AV久久久青桔| 婷婷国产日本欧美| 大地资源色婷婷视频在线| 久久99综合| 丁香五月91| 97五月天婷婷综合激情网| 天天xxxxxx天天日| 六月丁香啪| 色五月综合婷婷| 日韩成人影片网站| 丁香五月亚综合图片| 久久人妻少妇嫩草AV| 99热在线99| 99这里只有精品|v| www·五月天| www.婷婷六月天| 2014天天爽| 国产无套精品一区二区| 97色五月天| 亚洲精品一区无码A片| 丁香五月婷婷综合视频| 久久婷婷五月综合色区| 激情綜合W W W,激情五月天| 婷婷五月精品中文字幕| 色色A| 精品99这里有| 青青草伊人婷婷| 婷婷网五月| 色综合婷婷99| 成人电影在线免费试看| 激情婷婷五月亚洲| 风流少妇A片一区二区蜜桃| 人妻狠狠操| 丁香五月天.com| 91超级碰在线视频| 色色婷婷丁香| 狠狠插狠狠操| 婷婷成人网五月天| 狠狠色综合图片| 99热免费精品| 91狠狠色丁香婷婷综合久久| 婷婷色色网站| 强伦轩人妻一区二区电影| 婷婷五月花| 能看的AV| 亚洲国产精品VA在线看黑人| 五月6香色婷婷视频| 五月婷婷激情综合| 日91高清无玛| 五月丁香 啪啪啪| 香蕉99网| 婷婷五月天网| 91丨九色丨熟女丰满| 99久久九九| 亚洲视频在线观看| 欧洲亚洲免费视频9| 【乱子伦】黄色| 婷婷五月天 丁香五月天 裸体| 99热这里只有精彩| 丁香婷婷丁香五月欧美人| 婷婷丁香成人色综合| 激情五月综合| 日本九九热| 五月天天综合| 九九久久久综合| 九九色影院| 高清无码中文字幕aVDV| 五月天狠狠网站| 99热午夜精品| 99网| 六月激情综合| 婷婷无码视频| 成人丁香| www.五月瑟| www99热| 红桃91人妻爽人妻爽| 久久99网| 五月天丁香网站| 久久精彩视频99| 99er6免费视频热播| 久操大屁股女人av| 性爱激情久久| 屁股翘好撅高迎合跪趴| 99日韩| 婷婷色操| 99在线资源| 久久这里只有精品视频26| 色婷婷久久综| 丁香婷婷五月综合| 六月婷婷最新网址| 91热久88| 九久热| 日本乱子人伦在线视频| 天天色天天操天天射| 五月丁香综合激情网| 五月婷伊人| 婷婷六月色| 五月激情综合性爱| 狠狠色综合五月人人| 久久99久久99久久99人受| 天天操天天日天天爽| 亚洲精品网站色视频| 婷婷趴趴| 九九色色网| 久久九九re热| 色色色在线观看| 丁香花狠狠婷婷亚洲中文字幕| 色色综合网站| 中国丰满熟女A片免费观| www.久久| 天天插天天插| 久久婷婷青青草| www.色婷婷| 中文字幕黄色片| 九九热最新地址| av色婷婷| 久色网| 色色丁香| 国产毛片操B| 欧美内射AAAAAAXXXXX| 9久热| 国产亚洲精品AAAA片APP| 天天爽夜爽| 九月激情网| 91在线日| 国产成人精品亚洲线观看| 丁香五月婷婷色| 五月天成人免费视频| 天天肏夜夜肏| 日韩久久系列| 久婷久婷激情肉| 婷婷丁香五月天影院| 综合亚洲AV| 91 原创 在线 九色| 婷婷六月色情| 婷婷综合另类小说| 日日操,天天操| 色人妻五月| 色婷婷丁香五月天在线观看| 欧美日韩99| 五月丁香影视| 69人人操人人爽| 五月丁香六月婷婷的女人| 五月天激情四射网站| 超碰免费人妻| A A色色| 综合一本道| 99热综合色图| 午夜成人片400| 中文婷婷狠狠| 五月丁香六月婷婷亚洲天堂网站| 色狠狠色狠狠| 丁香五月久久| 影音先锋男人av资源站| 99热综合| 99热在线看| AV性爱在线| 久草婷婷在线| 四色综合网| 青青草日本亚洲| 天天摸天天舔| 欧美怡红院黄站| 91操在线| 欧美激情丁香五月天久久婷婷一区| 热成人网| 色五月亚洲| 成人在线观看一区| 激情五月亚洲综合网| 97热这里只有精品| 国产午夜成人AV在线播放| 99热亚州综合| 日日干夜夜撸夜夜骑| 一本色道久久综合狠狠躁小说| 99热这里只| 婷婷中文综合网| 99人妻碰碰碰久久久久禁片| 九九色综合九九色| 超碰只有精品在线| 激情 五月 婷婷 丁香| 激情五月丁香六月| 岛国AAAV| 婷婷丁香一月| 四色永久成人网站| 色播婷婷五月天| 婷婷五月天亚洲综合| 婷婷午夜天| 久久激情婷婷| 五月丁香激情深爱婷婷| 日日干夜夜干| 日操| 色色com| 大香蕉 伊人夜| 情涩婷婷五月天| 精品久久人妻| 色色婷婷丁香| 91婷婷丁香| 91主播在线| 色五月天天| 一级性爱视频| 天天开心天天色| 97色色视频| 综合久久激情久久| 天天拍夜夜爽| 日本色色色色色色色色一色二色| 天堂婷婷五月在线| 91久久99久久91熟女精品| 综合五月丁香六月婷婷| 久草热在线视频| 665566 无码| 久久香蕉婷婷五月天| 久久综合99| 综合一区二区三区| 99久在线视频| 婷婷色激情网| 色色热| 色~性~乱~伦~噜| 婷婷五月天六月丁香| 亲子乱AV-区二区三区| 天天拍夜夜爽| 69天堂99| 日本五月婷| 97碰 在线视频观看| 一级二级香港秋霞欧美欧美秋霞| 琪琪色综合网站| 狠狠干激情五月| 少妇水多A片太爽了| 亚洲色欲欧美一区二区三区| 超碰成人黄色网| 婷婷播播五月天| 中文成人在线| 婷婷六月久久综合导航| 99草视频在线观看| 久/久精品99看9| 亚洲精品视频在线播放| 大香蕉啪啪啪| 五月天成人在线精品| 尔尔AV一区| 爱操人妻| 天天干天天干天天干天天干天天干| 婷婷五月天奸女| 99综合久久| 99亚洲天堂| 亚洲这里只有精品| 五月激情综合深爱| 婷婷五月天亚洲综合| 五月婷啪| 色宗合久久五月婷婷| 玖玖@三月天天丁香婷婷| 亚洲99精品欧美一区| 丁香五月天狠狠操| 婷婷九月| 九九无码| 丁香久色| 久久婷婷内射| 老师的粉嫩小又紧水又多A片视频| 婷婷丁香视频| 亚洲第一黄网| 色香五月天| 97操碰日本女人| 麻豆雪千夏| 婷婷五月激情四月综合 | 九九蜜臀精品| 婷婷六月久久| 色色色999| 激情色情五月天| 国内久久亭亭| 天天操婷婷| 亚洲艹网| 婷婷趴趴| 成人中文网| 日本五月天一页| 亚州色综合| 99热66| 啪啪六月婷婷| 熟女乱论网| 丁香香蕉婷婷| 亚洲色无码A片一区二区麻豆| 婷婷综合在线| 先锋av性爱成人电影| 五月婷婷七月丁香| AV在线不卡播放| 性爱网五月天| 色五狠狠| 五月丁香婷婷六月天| 久久久久久99精品无码| 久久丁香综合精品综合| 五月婷婷大香蕉| 激情小说婷婷| 久久这里只有精品22| 久操热线| 色色五月婷婷久久| 综久久久| 视频一区二区在线| 密着浓厚中出乚交尾GvG935| 亚洲五月婷| 天天综合色丁香| 欧美色欲色欲天天天www| 久热人妻| 日本精品99网站| 超爽内射| 久久综合9| 少妇大叫太大太粗太爽了A片| 亚洲 视频 导航 一区| 婷婷五月丁香综合人妻| 99re思思精品在线观看| ji'qing'luan'ren'lun| 六月综和久久| 久久小视频免费| 婷婷色丁香五月| 色婷婷最新域名| 久热99中文字幕| 欧美99| 一起草性爱不卡视频| 狠狠色噜噜狠狠| 天天干 夜夜爽| 婷婷六月天亚州| 狠狠操天天日| 久久婷婷五月草视频| 伊人国产婷婷五月天 | www.婷婷,com| 婷婷97碰碰| 欧美成人日韩| 激情四射婷婷| 开心五月激情网| 色色色国产| 狼人狠狠操| 五月婷婷人人人操| 色色丁香| 搡BBBB搡BBB搡18| 午夜丁香婷婷| 九九亚洲天堂| 97碰啪啪| 婷久久| 97影院一级片| 欧美这里只有精品| 夜夜爽77777妓女免费下载 | 亚洲思思热久| 六月丁香啪| 密黄站| 五月丁香婷婷久久| 97婷婷五月天| 五月婷婷久久大香蕉| 色五月天激情| 蜜桃成语时李时珍 免费| 欧美成人猛片AAAAAAA| 大香蕉在九| 狠狠爱丁香婷| 91视频精品99| 婷婷五月 丁香六月| 99热国产这里只有| 色五开心五月五月深深爱| 色五月综合激情| 日日日日日| 丁香六月久久| 五月Huangsewang| 999精品久久久久久久| 六月婷婷综合久久| 五月色欧洲| 色五月婷婷五月天激情综合| 色婷久久| 久久久久久久久18久久| 97色色色| 开心五月色婷婷综合开心网| 综合另类视频| 五月综合激情啪啪啪啪啪| AV六月丁香| 色婷| 99视频热| 婷婷五月激情五月激情| 精品五月天| 欧美一级色| 69凹凸成人综合网| 91在线日| 九九热精品视频九九| 激情五月天啪啪| 极品少妇高潮啪啪AV无码| 666555。COm毛片| 97碰碰久久| 色人久久| 五月天亚洲综合网| 国产成人一区二区三区在线观看| 天堂综合久| JAPANRCEP老熟妇乱子伦视频| 97成人操| 99热无码精品| 99热1| 牛牛澡牛牛爽| 人妻久久久久久久久妻久久久久久久久 | 色综合综合色| 色五月婷婷综合| 欧美大肥婆大肥BBBBB| 亚洲超级碰| 天天摸日日舔狠狠添婷婷婷| 五月丁香婷婷久久| 激情久久网| 天天做天天干天天综合网| 日本色久| 久久精品五月| 婷婷五月色網站| 日韩九区| 九九色图| 成人精品亚洲性爱| 日本玖玖在线| 丁香激激情网| 免费观看全黄做爰的视频| 91干视频| 日韩在线观看亚洲| 九月丁香八月婷婷久久综合久97| 婷婷丁香五月天亚洲| 五月色网| 天天爽天天爽天天爽天天爽天天爽天天爽天天 | 涩综合网| 欧美三级黄色片久久| 五月天婷婷丁香社区| 成熟妇人A片免费看网站| 激情五月综合| 婷婷色婷婷| AAA久久久AAA久久久AAA| 丁香五月开心五月激情| 久草丁香婷婷1024| 婷婷之六月丁香| 97精品人人A片免费看| 九九精品在线视频观看| 开心婷婷五月| 蜜桃婷婷五月| 六月丁丁香| 熟女激情网| 中文AV在线播放| 伊人喵咪a V| 女力报到正好爱上你| 欧美情色一区| 久久婷婷色五月| 激情图片亚洲| 狠狠激情五月天| 综合五月激情| 亚洲操操操| 激情五月色综合网| 99色在线| 婷婷六月丁香在线| 日韩色色视频| 99热这里只有精品1998| 涩丁香91| 无码髙清| 99爱视频精品在线观看| 国产美女无遮挡裸体毛片A片 | 五月天色婷婷综合| 婷婷综合色色| 免费看欧美成人A片无码| 久久视频这里都是精品| 色色色五月天婷婷| 天天干夜夜谢| 99久久99九九99九九九| 国产亚洲精品久久久久久郑州| 五月丁香婷婷激情久久| 五月天色色色网| 夜夜骑天天操| 欧美日韩999| 久草热8精品视频在线观看| 五月天婷婷丁香视频| 国产亚洲成人综合| 成人av免费观看| 六月色婷婷欧美| 狠狠狠狠狠狠草| 停停五月色宗合| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 91 久热| 99热这里都是精品| 袁子仪视频观看| 精品五月花| 无码区婷婷五月花开| 激情涩涩网| 二区成人视频| 天天插综合网| 五月天综合视频| 成人精品在线观看| 色综合网页| www.zbzhongsen.com| 天天干天天操天天上| 国内久久久精品99| 国产精品18久久久| 综合一本道| 丁香五月最新网址| 亚洲无AV在线中文字幕| 在线观看av网站| 深爱五月天 开心网| 91久久综合| 99原创自拍视频在线观看| 在线中文亚洲| 99爱免费视频| 思思热思在线精品视频| 久久九九@| 色五月丁香com| 久久亚洲婷婷| 亚洲成人婷婷| 色天天综合成人网| 26UUU| 九9九9无码| 大香蕉在九| 五月婷六月| 天天在线XXX| 99亚洲大片精品永久在线观看| 亚洲无码11| www.ywav| 国产亚洲精品久久久久久久久动漫| 五月婷啪啪| 精品A√| 激情五月婷婷伊人| 欧美成人无码高清一区二区三区| 伊人久久大香蕉网| 色五月婷婷伊人| 97大香蕉五月天| 香蕉婷婷色五月| 五月天自拍网| 青草性爱视频| 激情丁香婷婷六月天| 站长推荐无码播放| 99re热在线视频观看| 日本婷婷色| 7EzOBIhNq85TO| 99热久| 99综合网| 玖玖婷婷五月天| 99热国产这里只有精品| 五月丁香好婷婷A片网| www.激情五月| 夜夜爱网站| 丁香六月婷婷综合欧美| 亚洲第一精品成人999久久精品| 五月婷婷,六月激情| 六月激情婷婷色| 亚洲国产精品成人免费一区久久久在线观看AAAA | 99热在线观看| 日韩精品AV一区二区三区| 丁香婷婷六月| 婷婷伊人| 欧美三级巜人妻互换| 91碰碰碰| 国产高潮A片羞羞视频涩涩| 99只有精品| 欧美性爱五月天| 99这里只有精品| 日本99视频| 亚洲精品国产熟女久久久| 少妇人妻偷人精品无码视频新浪| 风流少妇A片一区二区蜜桃| 九九热这里| 五月天婷婷久久| 中文字幕无码人妻少妇免费视频| 成人精品视频99在线观看免费| 开心激情站| 91 影音先锋| 操逼亚洲天堂| 婷婷色色欧美| 九九碰九九爱97超碰| 女人露出p毛视频www网站| 思思热在线视频观看精品| 夜夜骑日日夜夜| 99热这里只有的精品视| 婷五月天| 色九月| 99精品偷自拍| 日本色色影院| 丁香六月综合激情| 天天综合永久| 日亚二欧美| 五月天婷婷丁香| 免费无码毛片一区二区A片| 九九热免费视频| 亚洲偷| 久久一级片| 六月丁香激情综合网| 天天天天天色| 天天天天天天操| 另类小说五月天| 黄桃AV无码免费一区二区三区| 亚洲国产成人AV在线| 91精品久久久久久久久久久久| 欧美日韩成人在线| 五月婷婷之美女图片| 久久视频这里有精品99| 五月丁香久久| 99ER热精品视频| 激情无码网| 综合五月天亚洲婷婷| 国产成人99久久亚洲综合精品| 91日日日| 久久丁香综合香蕉| 中文字幕婷婷| 九九视频这里只有精彩| 人妻性爱av网站| 丁香五月亚洲天堂| 激情五月天婷婷五月天| 亚洲成人在线观看网址| 99丁香五月婷| 五月丁香六月激情综合| 大香伊人久色| 最新日本A片| 五月丁香六月欧美综合网站| 国产伦亲子伦亲子视频观看| 色色五月婷婷久久| 激情性五月天免费小说视频| 婷婷社区五月天| 青青草婷婷久久| 噜噜狠狠| 丁香五月综合激情啪啪| 另类国产欧美视频| 另类图片 五月激情| 日本久久综合| 九伊人网| 丁香婷婷婷五月| 无码激情AAAAA片-区区| 超碰在线91| 啪啪色区| 超碰在线观看caop| 婷婷五月天色综合| 北京熟妇搡BBBB搡BBBB| 五月天啪啪视频| 精品久久99码| 婷婷伊人视婷婷婷| 亚洲五月天婷婷在线| 日韩精品AV一区二区三区| 激情综合色网| 色色五月天丁香| 丁香五月综合久久| 日本五月婷| 99热10在线高清播放| Av性爱网| 国产乱子轮XXX农村| 玖玖婷婷五月天| 日本五月婷婷| Www.se.久久| 操97在线观看| 96五月丁香熟女| 久久综合五月天激情小说网站| 综合激情五月丁香9999久久精| 91精品丝袜久久久久久| www.99婷婷| 97干在线观看视频| 伊人玖玖精品| 九九热视频99| 超碰成人在线观看| 伊人激情啪啪| 人妻中文在线| 五月婷婷激情五月| 五月天激情站| 中文字幕网伦射乱中文| 9999热精品在线免费播放| 丁香五月天激情综合| av在线超清中文| 97精品人人A片免费看| 五月天六月天| 91九九九九| 好吊操这里只有精品| 九九热大香蕉| 天天色综和网| 成人无码髙潮喷水A片| 欧洲日韩一区二区三区| 影音先锋男人女人| 天天爽天天做| 婷婷五月天久久综合88| 99久久综合网| 亚洲久久视频| 狠狠色丁香乆乆| 玖玖资源站蜜臀| 成人网站av免费网站推荐| 丁香五月欧美激情| 伊人五月天日日夜夜久久久天天| 国产精品人成A片一区二区| 丁香婷婷五月六月天| 少妇人妻丰满做爰XXX| 4399在线观看免费高清电视剧| 99久久国产宗和精品1上映| 99思思热只有在这里看| 91精品又长又大又粗又爽又猛| 久久婷.com| 天天婷婷天天| 中文在线视频久9| 丁香六月久久| 狠狠狠激情网| 9 99免费视频| 精品亚洲国产成人A片在线鸭王| 激情五月视频| WWW,五月| 九九热视频免费观看| www.99久久久久99| 色五月天电影| 日本久久爱| 99ri精品| 精品99*| 91精品婷婷国产综合久久| 九九免费视频在线| 99re欧美精品| 五月丁香龟婷婷| 99操逼| 五月天婷婷激情六月久久| 免费婷婷| 婷婷激情丁香六月| 久久加勒比| 日本不卡一区二区三区| 婷婷五月天激情丁香| 色欲婷婷五月天| www...com黄在线观看| 婷婷综合网站| www.com五月天| 梁铮版《蜘蛛女侠》在线| 亚洲综合五月天婷婷| 草综合14| 丁香五月亚洲无码| 99热只有精品综合| 日韩AV一区二区三区| 亚洲天堂热| 中文av网| 米奇影视五月天| 色六月丁香婷婷啪啪啪| 婷婷五月精品中文| 成人精品视频99在线观看免费| 色婷婷亚洲婷婷在线观看| 激情五月六月婷婷综合啪啪| AV在线免费网站| 97人人操com| 少妇高潮呻吟A片免费看软件| 99热日韩| 色色国产| 婷婷丁香五月综合网上| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 丁香五月亚洲AV| 五月天基地| 丁香花大香蕉婷婷综合| 97干在线视频| 亚洲99综合| jiZZdr| 五月丁香黄色| 天天 日综合| 久久这里只有精彩| 九九精品综合| 丁香六月婷婷综合啪啪| 国产黄色大片| 99A片| 日本不卡高字幕在线2019| www激情| 亚洲免费婷婷| 丁香五月天婷婷久久| 色狠狠色| 激情五月丁香五月| 亚洲午夜av| 99精品热视频| 97视频.干com| 99操免费视频| 97碰人人操| www热久久yy9| 婷婷激情视频| 日本激情91| 色色五月天丁香婷婷| 婷婷综合视频| 激情中文在线| www.五月丁香| 六月99天天婷婷激情综合| 99毛片| 97人人操在线| 激情综合五月丁香| 精品久久久人妻| 五月天激情视频| 五月天偷拍| www.久久爱| 人妻激情在线| 成人日韩欧美| 啪啪一区| 日本久久激情| 婷婷五月丁香综合瑟瑟| 日韩精品一区二区刘| 狠干综合| 91热在线| 思思热思在线精品视频| 色五月天综合| 婷婷五月天狠狠| 五月天久久综合婷婷| 黄网免费观看| 精品人妻一区二区| 午夜不卡久久精品无码免费| 99爱操| 色婷婷四色| 精品成人在线观看| 丁香九月综合| 久久这里只有精品网| 丁香五月综合网亚洲综合欧美狠狠 | 野战J办公桌椅H| 久久久久九九九九视屏小说88| 日韩美一级毛卡片| 99热碰碰热| 成人羞羞啪啪 全 视频| 六月丁香婷婷六月激情综合| 久久婷婷视频| 99热首页| 操97在线观看| 五月天激情久久| 99在线观看这里都是精品| 久99久热只有精品国产99| 激情五月天激情小说| 天天摸天天肏| 性爱网五月婷婷| 久操干| 九九婷婷综合| 五月天色综合| 婷婷六月天精品| 99热在线观看免费精品| 亚洲激情久久| www.婷婷五月天,com| 97人人操人人| 伊人综合网4| 开心激情综合| 在线不卡视频| 婷婷色五月天色色| 丁香五月婷婷亚洲色图| 婷婷五月天狠狠搞干| 五月婷婷久久爱| 美国十月色婷婷在线观看| 九九碰九九爱97| 丁香花婷婷五月天| 五月天天天综合| 五月婷婷在线视频| 成人综合网站| 射琪琪| 99色看这里只有精品| 丁香五月亚综合图片| 婷婷激情性爱| 色婷婷AV久久| 国产在线6| 99热综合色图| 丁香婷婷五月天成人| 婷婷香香五月| 婷婷射图| 潮汕成人AV片在线| 乱女乱妇熟女熟妇综合网站| 久久久人妻| 人人人操 超碰| 秋霞性爱AV| 亚洲婷婷欧美婷婷| 婷婷五月丁香综合亚洲| 五月婷婷新网站| 99视频九九热| 中国丰满熟女A片免费观| 狠狠干综合| 久热伊人91| 色色色综合视频| 亚洲美女高潮久久久久久69| 狠狠色丁香久久综合婷婷亚洲成人福利 | 婷婷,五月天,丁香,第一| 久久精彩视频| 91/九色黑人| 欧美熟女乱又伦| 97人人干| 六月丁香婷婷五月天| 日本五月天网站| 婷婷免费视频| 婷婷激情五月天在线视频| 高清不卡一区| 99精品丰满| 五月丁香婷庭在线| 国产精品第一国产精品| 丁香六月婷婷综情欧美| 欧美三级欧美一级| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 91丨九色丨熟女|老版| 欧美日韩日韩成人| 深夜A片| 久久9情免费| 亚洲丁香网| 五月激情综合网婷婷| 亚州视频九九99| 国产露脸150部国语对白| 色色99色色| 五月久久婷婷| 國語久久婷| 99精品热视频| 久操人妻| 日韩色色视频| 五月情丁香色| 欧美交换配乱吟粗大25P| 狠狠色婷婷在线| 国产精品色| 99 频99热国里只有精品| 99精品无码| 天天草天天爱| 在线看九一V图片| 色婷婷先锋| 婷婷97狠狠成人网站| 日本色婷婷久久99精品91| 亚洲乱码日产精品BD| 色色日韩无码| av免费在线观看0| 亚洲色色香蕉| 亚洲小电影在线观看黄999| 日本精品99网站| 99免费视频久久| 性做久久久久久久免费看| 婷婷五月丁香婷婷| 国产亚洲AV人片在线| 五月天天天色| 五月婷视频在线观看| 色5月丁香婷婷| 欧美三级欧美一级| 开心五月婷婷激情| 开心五月丁香婷婷| www九月婷婷| 色情丁香五月婷婷精品| 99视频色在线观看| 日本视频不卡123区| 97色碰碰公开视频| AV在线大香蕉| 色五月婷婷中文字幕| 成人av在线网站| 五月激情丁香久久综合网| 在线看片h站| 思思热在线视频精品| 综合激情五月天| www久久久久久久久久久| 人人摸人人搞| 久色网| 丁香五月婷婷av影院| 26uuu成人网| 激情五月深爱五月| 综合狠久久| 色色色色色色色色综合网| 色婷婷激情| 无码免费人妻A片AAA毛片西瓜| 亚洲色在线观看| 色999亚洲人成色| 色情终和网| 日本一级特黄大片AAAAA级| 中文字幕日产A片在线看| www.一起草av| 五月色色色| 色五月婷婷五月久久| 久9视频免费播放| 亚洲中文丁香| 激情综合网激情五月婷婷| 色婷婷先锋| 色五月丁香在线| 色五月综合激情| 大香蕉丁香婷婷| 啪啪91| 亚洲第一精品网站| 久久中文人妻系列| 9视频在线成人网站| 欧美α√| 狠狠狠狠免费| 婷婷久久性爱| 五月停视频天堂| 日日杆天天| 婷婷丁香小说| 丁香六月婷婷综合麻豆| av国产精品偷| 亚洲区在线| 久久久中文| 99九九视频| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 久久久99精品免费观看| 噜噜噜狠狠色综| 天天天天天天噜| 色综合色综合网| 色色色激情网| 精品人妻伦九区久久AAA片| 五月天婷婷网站888| 天天爽日日爽夜夜爽| 久久杏爱视频| 婷婷中文在线| 激情宗合 激情宗合| 色婷婷在线电影| 人妻久久久久久| 玖玖99免费视频| 婷婷激情图片| 亚洲成人黄色网| 伊人成人宗合网| 俺也去婷婷五月天第五色| 久久久久激情网| 国产午夜伦鲁鲁| 激情性爱五月| 激情五月综合婷婷| 这里只有精品网站| 涩五月丁香| 五月丁香六月婷婷中文版| 五月丁香六月婷婷综合在线| 欧美久久网| 五月综合丁| 97很鲁在线视频| PORNY九色9l自拍视频成人| 六月综合婷婷开心伊人| 99热这里只有精品最新网址| 色综合久久天天综合网| 日韩抽插操逼| 侠女刀之记忆电影在线看免费| 99熟女| 九色无码| 婷婷五月欧美综合| 苗黎美女四级成人版一级二级毛片| 天天日天天插| 亚洲人成网站999综合| 五月花激情网| 青草视频在线播放| 久久精品一区二区三区四区| 国产毛片精品一区二区色欲黄A片| 依人大香蕉| 亚洲精品色| 久久婷婷五月综合伊人| 五月天丁香网站| 天天日天天插| 婷婷性爱网| 日日噜噜夜夜狠狠久久丁香六月| 色噜噜狠噜噜视频| www激情com| 婷婷狠狠干| 天天日夜夜| 99ri在线视频| 色五月婷婷在线| 成人片黄网站色大片免费毛片| 91精品婷婷国产综合久久| 任你日视频| 97色干| 色婷婷五月影视| 色噜噜狠狠色综合日日免费| 五月婷婷免费在线观看| 五月丁香婷婷啪啪综合网| 日韩成人网站精品久久大全| 国产欧美日韩性爱| 婷婷五月天色综合翘| 狠狠插狠狠| 五月婷婷丁香av| 狠狠干在线| 91美女被操| 久久婷婷五月天| 黄色AAAA韩国guochansanji| 操人精品| 成人精品在线| 九九九成人在线视频| 久久婷婷六月综合综合| 午夜色婷婷| 人操人| 草操网| 人妻久久久| 年轻的妺妺伦理HD中文| 热久69| 色情播放| 亚洲区视频| 亚洲美女裸体被操在线观看| 丁香花五月天激情| 99精品7| 久热大香蕉| 草榴成人影片| 丁香五月天欧洲在线| 色色亚洲五月天| 内射爽无广熟女亚洲| 精品亚洲日韩99欧美片| 色播丁香五月婷婷操:屄| 天天人人人人人人人人人人人| 欧美成人精品A片免费一区99| 加勒比日本一区二区三区| 97色色色视屏| 久久天天| 99国产精品白浆在线观看免费| 丁香六月欧美| 丁香六月色香蕉视频| 天天做天天摸| 九九RE视频在线精品| 久久九九99.www| 日本九九视频| 国产精品噜噜在线视频| 婷婷五月色激情欧美激情| www.天天干| 六月婷婷啪啪| 免费试看小视频 99| 日韩AAAAAAAAAAA片| renrencaoav| 96精品久久久久久久久| 国产激情一区| 欧美激情Va| 六月婷婷开心| 五月天婷婷香蕉狠狠超碰综合| 日日操,夜夜爽| 乱岳熟女50岁| 五月天激情小说婷婷| 婷婷九月激情| 五月婷婷婷| 久久机热/这里只有精品| http://www.com久久久精品一区| 五月丁香| 超碰亚洲天堂| 色域五月婷婷丁香| 婷婷丁香六月| 欧美啪啪五月天| 久久婷婷综合五月趴| 2050人人操免费工开爱| 五月丁香激情综合欧美| 五月综合久久| 婷婷六月丁香开心深深爱| 99热精品在线| 操99| 丁香五月婷婷色| 五月婷婷六月丁香综合| 国产免费一区二区三州老师F1F1| 亚洲蜜乳AV| 婷婷五月激情六月| 色婷成人狠干| 五月天另类激情在线| 婷婷综合日本| 色噜噜狠狠色综无码久久合欧美| 停停六月 综合| 天天色视频| 五月天激情网址| 欧美视频五区| 五月丁香精品| 99热在线观看精品| 这里只有精品视频视频在线观看| 97在线精品| 18av天堂| 青草青草视频2免费观看| 五月丁香久久激情网| 99久久天堂婷婷|