久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

用Python_OracleDB 的調(diào)用Oracle存儲(chǔ)過(guò)程返回Cursor的方法:TaoToken 統(tǒng)一 Key 通道下的可復(fù)制配置與驗(yàn)證 1. Python 調(diào)用 Oracle 存儲(chǔ)過(guò)程返回 Cursor 的真實(shí)場(chǎng)景與坑點(diǎn)如果你正在用 Python 連 Oracle并且存儲(chǔ)過(guò)程里返回的是SYS_REFCURSOR那你大概率會(huì)遇到一個(gè)很典型的問(wèn)題普通cursor.execute()執(zhí)行完拿不到結(jié)果集或者拿到的對(duì)象不是可迭代的行而是一個(gè)綁定變量句柄。這個(gè)場(chǎng)景在報(bào)表查詢、批量數(shù)據(jù)導(dǎo)出、老系統(tǒng)對(duì)接里非常常見(jiàn)尤其是 Oracle 存儲(chǔ)過(guò)程把查詢結(jié)果通過(guò)OUT參數(shù)以游標(biāo)形式吐出來(lái)的時(shí)候。我先把結(jié)論說(shuō)清楚Python 的oracledb驅(qū)動(dòng)也就是原來(lái)cx_Oracle的新名字調(diào)用返回 Cursor 的存儲(chǔ)過(guò)程核心動(dòng)作只有三步——用cursor.var()聲明一個(gè)游標(biāo)類(lèi)型的綁定變量、把它作為OUT參數(shù)傳進(jìn)begin ... end;匿名塊、執(zhí)行完之后直接對(duì)這個(gè)游標(biāo)變量做for row in cursor_var迭代。聽(tīng)起來(lái)簡(jiǎn)單但真正卡人的地方在于連接池怎么配、綁定變量類(lèi)型怎么聲明、字段映射怎么對(duì)齊、異常怎么捕獲。這幾個(gè)點(diǎn)任何一個(gè)沒(méi)處理好你看到的報(bào)錯(cuò)就是ORA-01036、DPI-1010、ORA-06550這類(lèi)讓人頭大的信息。這篇內(nèi)容聚焦的就是這條完整鏈路從連接串配置到存儲(chǔ)過(guò)程調(diào)用再到游標(biāo)讀取和異常處理。我會(huì)給出可以直接復(fù)制的配置片段也會(huì)用一個(gè)最小的存儲(chǔ)過(guò)程來(lái)驗(yàn)證 Cursor 返回是否正常。如果你本地已經(jīng)裝好了 Oracle 客戶端和 Python 環(huán)境跟著走一遍就能復(fù)現(xiàn)。另外說(shuō)明一下本文里涉及模型調(diào)用通道的部分統(tǒng)一走 TaoToken 的 Key 通道來(lái)做演示目的是讓配置片段保持一致的鑒權(quán)方式方便你在同一套環(huán)境里既跑數(shù)據(jù)庫(kù)調(diào)用、又跑模型輔助排查。數(shù)據(jù)庫(kù)本身還是連你自己的 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 客戶端庫(kù)Instant Client要能被找到或者用 thin 模式。oracledb默認(rèn) thin 模式不需要 Instant Client但如果你要用某些高級(jí)特性比如特定的字符集、外部認(rèn)證還是得配lib_dir。有一個(gè)可用的 Oracle 實(shí)例里面有建存儲(chǔ)過(guò)程的權(quán)限。我試過(guò)在 thin 模式下直接連 Oracle 19c 和 21c基本沒(méi)問(wèn)題。但如果你連的是比較老的 11gthin 模式可能不支持那就得裝 Instant Client 并設(shè)置ORACLE_CLIENT_LIB_DIR或者初始化時(shí)傳lib_dir。存儲(chǔ)過(guò)程這邊假設(shè)我們有一個(gè)測(cè)試用的過(guò)程簽名大概是這樣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è)過(guò)程的邏輯很簡(jiǎn)單接收兩個(gè)入?yún)⒋蜷_(kāi)一個(gè)游標(biāo)返回兩行數(shù)據(jù)。用它來(lái)驗(yàn)證 Cursor 返回是最小可復(fù)現(xiàn)的。你可以在 SQL Developer 或者 sqlplus 里先跑一遍確認(rèn)過(guò)程本身沒(méi)問(wèn)題再去 Python 里調(diào)。很多人第一次調(diào)的時(shí)候會(huì)把OUT SYS_REFCURSOR當(dāng)成普通返回值處理寫(xiě)成result cursor.callproc(...)結(jié)果發(fā)現(xiàn)拿不到行。這就是沒(méi)理解 Oracle 的游標(biāo)是綁定變量機(jī)制。正確做法是用cursor.var(oracledb.CURSOR)聲明一個(gè)游標(biāo)變量傳進(jìn)去執(zhí)行后迭代它。還有一個(gè)高頻坑連接池的dsn寫(xiě)法。192.168.3.169:1521/orclpdb1這種是 EZConnect 格式host:port/service_name。如果你用的是 SID 而不是 service name得寫(xiě)成host:port/SID或者用完整的(DESCRIPTION...)。寫(xiě)錯(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é)說(shuō)清楚 TaoToken 在這套流程里扮演什么角色。你調(diào) Oracle 存儲(chǔ)過(guò)程本身不需要 TaoToken數(shù)據(jù)庫(kù)連接是直連你的 Oracle 實(shí)例。但實(shí)際開(kāi)發(fā)中你經(jīng)常需要讓模型幫你解釋報(bào)錯(cuò)、生成 SQL、檢查綁定變量寫(xiě)法這時(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-開(kāi)頭的字符串具體以你控制臺(tái)里顯示的為準(zhǔn)。如果你只是想讓模型幫你排查 Oracle 報(bào)錯(cuò)最直接的方式是打開(kāi)模型對(duì)話頁(yè)面把報(bào)錯(cuò)原文貼進(jìn)去。模型對(duì)話入口https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。這個(gè)頁(yè)面適合快速問(wèn)一句“這個(gè) ORA-01036 是什么原因”不用寫(xiě)代碼。如果你是要長(zhǎng)期做編碼、寫(xiě) 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 這類(lèi)工具比較順。Key 的管理在控制臺(tái)https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 。你可以在這里創(chuàng)建、查看、吊銷(xiāo) Key。API Keys 頁(yè)面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 里面有各語(yǔ)言的調(diào)用示例配環(huán)境變量、改 Base URL 的寫(xiě)法都能查到。如果你用的是 Claude Code它有自己的接入方式參考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude_codeutm_campaignrewrite 。這個(gè)頁(yè)面講的是怎么把 Claude Code 接到統(tǒng)一通道上。這里要強(qiáng)調(diào)一點(diǎn)TaoToken 是模型調(diào)用的統(tǒng)一入口不是數(shù)據(jù)庫(kù)代理也不是什么中轉(zhuǎn)。你的 Oracle 連接串、賬號(hào)密碼、存儲(chǔ)過(guò)程調(diào)用全都走你自己的網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)跟 TaoToken 無(wú)關(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ǔ)過(guò)程已創(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返回模型列表就說(shuō)明 Key 和 Base URL 都對(duì)。這一步不通后面模型輔助排查就別指望了。常見(jiàn)問(wèn)題是 Key 復(fù)制時(shí)帶了空格或者 Base URL 寫(xiě)成了帶 UTM 的地址。記住程序調(diào)用用https://taotoken.net/api不帶參數(shù)。數(shù)據(jù)庫(kù)側(cè)的前置確認(rèn)oracledb版本python -c import oracledb; print(oracledb.__version__)輸出類(lèi)似2.5.0就正常。如果報(bào)ModuleNotFoundError回去pip install oracledb。到這里模型通道和數(shù)據(jù)庫(kù)環(huán)境都準(zhǔn)備好了。下一節(jié)進(jìn)入可復(fù)制的配置片段包括連接池、綁定變量聲明、存儲(chǔ)過(guò)程調(diào)用。3. 可復(fù)制的連接池與存儲(chǔ)過(guò)程調(diào)用配置片段這一節(jié)是全文的核心給出可以直接復(fù)制運(yùn)行的代碼。我會(huì)把連接池配置、游標(biāo)變量聲明、存儲(chǔ)過(guò)程調(diào)用、結(jié)果讀取拆開(kāi)講每一段都標(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)景下比較常見(jiàn)。接下來(lái)是調(diào)用存儲(chǔ)過(guò)程的關(guān)鍵部分。假設(shè)存儲(chǔ)過(guò)程簽名是test1(param1 IN VARCHAR2, param2 IN VARCHAR2, p_cursor OUT SYS_REFCURSOR)調(diào)用代碼如下connect pool.acquire() cursor connect.cursor() # 聲明游標(biāo)類(lèi)型的綁定變量 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)必須說(shuō)清楚第一cursor.var(oracledb.CURSOR)聲明的是游標(biāo)類(lèi)型綁定變量。oracledb.CURSOR是常量對(duì)應(yīng) Oracle 的SYS_REFCURSOR。不要寫(xiě)成oracledb.NUMBER或者oracledb.STRING類(lèi)型不對(duì)會(huì)報(bào)DPI-1010或者ORA-06550。第二匿名塊里用:p_cursor作為占位符執(zhí)行時(shí)通過(guò)關(guān)鍵字參數(shù)p_cursorcursor_var傳入。參數(shù)名要和占位符一致順序無(wú)所謂因?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)用方式類(lèi)似但要注意連接是從 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ù)類(lèi)型如果你的存儲(chǔ)過(guò)程入?yún)⑹菙?shù)字Python 側(cè)傳 int 或 float 就行oracledb 會(huì)自動(dòng)映射。如果是日期傳datetime.datetime對(duì)象。如果是 CLOB/BLOB需要額外聲明類(lèi)型這里不展開(kāi)。一個(gè)完整的可運(yùn)行腳本把上面拼起來(lái)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ù)就說(shuō)明整條鏈路通了。如果你在配置模型輔助排查比如用 Cline 或 Claude Code需要寫(xiě)全三件套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配置類(lèi)似{ 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)。這些配置的作用是讓模型工具能通過(guò)統(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í)行到字段映射配置寫(xiě)完之后必須驗(yàn)證。驗(yàn)證分兩層模型通道通不通數(shù)據(jù)庫(kù)調(diào)用通不通。先快速過(guò)模型通道再重點(diǎn)講數(shù)據(jù)庫(kù)。模型通道驗(yàn)證前面 curl 已經(jīng)給過(guò)。再補(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 和模型列表說(shuō)明 Key 和 Base URL 都對(duì)。如果 401檢查 Key如果連接超時(shí)檢查網(wǎng)絡(luò)。數(shù)據(jù)庫(kù)調(diào)用驗(yàn)證跑上一節(jié)的完整腳本。預(yù)期輸出columns [COL_A, COL_B] row (a1, a2) row (b1, b2)字段名是大寫(xiě)因?yàn)?Oracle 默認(rèn)把未加引號(hào)的標(biāo)識(shí)符轉(zhuǎn)大寫(xiě)。行是 tuple順序和description一致。如果你看到這個(gè)輸出說(shuō)明 Cursor 返回、字段映射、游標(biāo)迭代都正常。如果存儲(chǔ)過(guò)程返回的字段有別名比如SELECT col_a AS myCol那description里就是myCol大小寫(xiě)按你寫(xiě)的來(lái)。這點(diǎn)在做字段映射時(shí)要注意別硬編碼大寫(xiě)。驗(yàn)證字段映射可以加一段類(lèi)型檢查for d in cursor_var.description: print(name , d[0], type , d[1], size , d[3])d[1]是類(lèi)型碼d[3]是顯示大小。這樣你能確認(rèn)每個(gè)字段的類(lèi)型是否符合預(yù)期。比如VARCHAR2對(duì)應(yīng)oracledb.DB_TYPE_VARCHARNUMBER對(duì)應(yīng)oracledb.DB_TYPE_NUMBER。驗(yàn)證多行返回把存儲(chǔ)過(guò)程改成返回 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就說(shuō)明大結(jié)果集也能正常迭代。注意游標(biāo)是流式讀取的不會(huì)一次性把 100 行全加載到內(nèi)存這對(duì)大結(jié)果集友好。驗(yàn)證異常處理故意傳錯(cuò)參數(shù)類(lèi)型try: cursor.execute( begin test1(:p1, :p2, :pc); end;, p1123, # 故意傳數(shù)字存儲(chǔ)過(guò)程期望 VARCHAR2 p2a2, pccursor_var, ) except oracledb.DatabaseError as e: error, e.args print(code , error.code) print(message , error.message)預(yù)期捕獲到ORA-06502或者類(lèi)型轉(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 行說(shuō)明池的獲取和歸還正常。如果池耗盡會(huì)卡在pool.acquire()這時(shí)候檢查max是不是太小或者有沒(méi)有連接沒(méi)關(guān)。驗(yàn)證成功之后把結(jié)果和預(yù)期對(duì)照。我一般會(huì)寫(xiě)一個(gè)簡(jiǎn)單的斷言assert columns [COL_A, COL_B] assert len(rows) 2 assert rows[0] (a1, a2)斷言通過(guò)整條鏈路就算驗(yàn)證完畢。這里再提一下模型輔助驗(yàn)證的用法。如果你在驗(yàn)證過(guò)程中遇到報(bào)錯(cuò)可以把報(bào)錯(cuò)和你的代碼片段一起貼到模型對(duì)話里讓它幫你定位。比如貼DPI-1010: invalid binding type模型會(huì)告訴你綁定變量類(lèi)型聲明錯(cuò)了。這種用法比你自己翻文檔快。驗(yàn)證階段常見(jiàn)的結(jié)果異常輸出columns []說(shuō)明游標(biāo)沒(méi)打開(kāi)存儲(chǔ)過(guò)程可能沒(méi)執(zhí)行到OPEN檢查過(guò)程邏輯。輸出行數(shù)不對(duì)檢查存儲(chǔ)過(guò)程的WHERE條件或者綁定變量是否傳對(duì)。字段名亂碼檢查數(shù)據(jù)庫(kù)字符集和客戶端字符集是否一致。迭代時(shí)報(bào)DPI-1067游標(biāo)已經(jīng)被關(guān)閉或者被消費(fèi)過(guò)檢查是否重復(fù)迭代。下一節(jié)專(zhuān)門(mén)講這些報(bào)錯(cuò)的排查。5. 本篇常見(jiàn)報(bào)錯(cuò)排查401、DPI-1010、ORA-01036 與游標(biāo)讀取異常這一節(jié)按真實(shí)報(bào)錯(cuò)來(lái)對(duì)照給出原因和修復(fù)動(dòng)作。我把最常見(jiàn)的幾類(lèi)列出來(lái)你遇到哪個(gè)查哪個(gè)。401 Unauthorized模型通道報(bào)錯(cuò)原文{error: {message: Invalid API key, type: invalid_request_error}}原因TaoToken Key 不對(duì)或者請(qǐng)求頭沒(méi)帶對(duì)。檢查Authorization: Bearer sk-xxx格式Key 前后有沒(méi)有空格。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原因本地配了代理但代理沒(méi)啟動(dòng)或者代理端口不對(duì)。這個(gè)報(bào)錯(cuò)跟 TaoToken 無(wú)關(guān)是你本地網(wǎng)絡(luò)配置的問(wèn)題。檢查環(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原因綁定變量類(lèi)型聲明錯(cuò)了。最常見(jiàn)的是把游標(biāo)變量聲明成了oracledb.NUMBER或oracledb.STRING。存儲(chǔ)過(guò)程的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ù)不匹配。比如匿名塊里寫(xiě)了: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ǔ)過(guò)程時(shí)參數(shù)個(gè)數(shù)或類(lèi)型不對(duì)。檢查存儲(chǔ)過(guò)程簽名確認(rèn)入?yún)⒑统鰠?shù)量、類(lèi)型匹配。比如過(guò)程需要 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 寫(xiě)錯(cuò)了。192.168.3.169:1521/orclpdb1里的orclpdb1必須是數(shù)據(jù)庫(kù)實(shí)際注冊(cè)的 service name。修復(fù)在數(shù)據(jù)庫(kù)服務(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)過(guò)期。如果你是通過(guò)統(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) # 這樣沒(méi)問(wèn)題游標(biāo)讀取異常結(jié)果為空但沒(méi)報(bào)錯(cuò)現(xiàn)象for row in cursor_var一行都不輸出也不報(bào)錯(cuò)。原因存儲(chǔ)過(guò)程里的OPEN沒(méi)執(zhí)行到或者WHERE條件過(guò)濾掉了所有行。也可能是游標(biāo)變量聲明了但沒(méi)傳進(jìn)過(guò)程。修復(fù)先在 SQL Developer 里直接跑存儲(chǔ)過(guò)程確認(rèn)有數(shù)據(jù)返回。再檢查 Python 側(cè)的綁定變量是否傳對(duì)。連接池耗盡現(xiàn)象程序卡在pool.acquire()不返回。原因連接沒(méi)歸還池的max太小或者有連接泄漏。修復(fù)確保每次pool.acquire()之后都有connect.close()。用try/finally保證歸還。臨時(shí)加大max看是否緩解。connect pool.acquire() try: # 你的操作 pass finally: connect.close()字段名大小寫(xiě)不一致現(xiàn)象columns里是大寫(xiě)但你代碼里按小寫(xiě)取取不到。原因Oracle 默認(rèn)大寫(xiě)標(biāo)識(shí)符。修復(fù)統(tǒng)一用大寫(xiě)或者建表/查詢時(shí)用雙引號(hào)指定大小寫(xiě)。映射時(shí)用dict(zip(columns, row))按實(shí)際字段名取。row_dict dict(zip(columns, row)) print(row_dict[COL_A])這些報(bào)錯(cuò)覆蓋了大部分場(chǎng)景。遇到?jīng)]列出來(lái)的把報(bào)錯(cuò)原文貼到模型對(duì)話里讓它幫你分析。模型對(duì)話入口前面給過(guò)這里再放一次方便你復(fù)制https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel_chatutm_campaignrewrite 。排查的時(shí)候有個(gè)原則先確認(rèn)是模型通道的問(wèn)題還是數(shù)據(jù)庫(kù)的問(wèn)題。模型通道的報(bào)錯(cuò)通常是 401、超時(shí)、JSON 解析失敗數(shù)據(jù)庫(kù)的報(bào)錯(cuò)通常是 ORA-、DPI- 開(kāi)頭。分開(kāi)定位效率高很多。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ǔ)過(guò)程用匿名塊調(diào)用結(jié)果直接迭代游標(biāo)變量。字段映射靠cursor_var.description異常捕獲用oracledb.DatabaseError。如果你還需要把這套流程固化到項(xiàng)目里建議把連接池做成單例避免每次調(diào)用都重建。Key 和連接串走環(huán)境變量不要硬編碼。存儲(chǔ)過(guò)程調(diào)用封裝成函數(shù)入?yún)⒑统鰠⒚鞔_。模型側(cè)的統(tǒng)一通道Key 管理在控制臺(tái)接入文檔在文檔頁(yè)。需要新建 Key 就去 API Keys 頁(yè)面。長(zhǎng)期編碼場(chǎng)景用 Coding Plan快速問(wèn)報(bào)錯(cuò)用模型對(duì)話。這幾個(gè)入口按你的實(shí)際需求選不用全用。最后給一個(gè)實(shí)用技巧把存儲(chǔ)過(guò)程的調(diào)用和模型排查串起來(lái)。寫(xiě)一個(gè)腳本捕獲到oracledb.DatabaseError時(shí)自動(dòng)把報(bào)錯(cuò)和 SQL 片段發(fā)給模型讓它返回可能的原因。這樣排查效率會(huì)高很多。模型調(diào)用走統(tǒng)一通道Base URL 和 Key 配一次就行。如果你在接入過(guò)程中卡住優(yōu)先檢查三件套Base URL 是不是https://taotoken.net/apiKey 是不是有效Model ID 是不是可用。這三個(gè)對(duì)了模型通道就通。數(shù)據(jù)庫(kù)側(cè)檢查連接串、綁定變量類(lèi)型、存儲(chǔ)過(guò)程簽名。兩邊分開(kāi)查問(wèn)題很快能定位。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产又黄又粗又猛大片| 天美国产三级传媒| 欧美九九九| 精品成人无码| 躁躁日曰躁2020| 国产成人主播| 97人人操人人摸| 精产国品一区二三产品| 狠狠色婷婷777| 国产精品无码av嫩草| 亚洲欧美日韩激情不卡| 欧美一级AAAAAAA| 一区二区三区四区色图| 日产操逼| 欧美亚洲特P| 天天日天天爽| 国产在线激情视频| 97日韩欧美亚洲| 激情五月天网| 在线观看黄色电话| 日韩性爱小视频| 久久9精品| 人人爽天天爽| 婷婷五月天基地| WWW黄片COM| 色吧 综合| 长久操视频| 亚洲精品亚洲人成人网| 免费啪啪一级视频| 手机在线免费看的av| 大屁股熟女一区二区三区| 亚洲综合在线视频| 高清无码在线播放网站| 日韩福利综合一区| 国产成人 综合亚洲 天堂| 精品人妻一二三| 黄色片A级一区二区三区| 欧美综合亚洲综合| av橘色网站| 搡老女人老91妇女熟女| 欧洲精品久久| 91日产欧美| 99热网站| 九九十八精品| 天堂日本亚洲欧美| 天天狠| 97人人操人人摸| 久久精品国产99精品亚洲蜜... | 免费成人自拍视频在线| 亚洲成人激情小说视频| 日韩欧洲操屄视频| 色噜噜精品一区二区三| 成人小说视频在线精品欧美| 亚洲欧洲精品视频发布| 黑丝少妇在线观看| 青青草无码视频| 一本色道久久综合狠狠操| 安徽熟妇视频| 久久这里都是精品| 欧日韩一二三f区| 404操逼福利视频| 淫荡熟女乱伦网| AV无码久久久精品| 中文字幕在线观看二区三区| 亚洲人妻一区二区三区| 亚洲五月天激情| 九九热在线视频| 人伦四五区| 9久9久| 亚洲av青草久久一区二区| 98人妻精品一区二区色欲| 另类天堂| 欧亚无码视频| 日韩偷拍一区二区三区| 国产高潮AA片免费看| 自慰白浆在线观看| 亚洲日韩肥臀视频在线观看| 亚洲丝袜二区在线| 在线播放成人高清免费视频| 女色视频社区| 97视频一区| 综合网天天| 色在线亚洲视频www| 在线播放成人高清免费视频| 国产又爽又黄| 97网址97| 激情欧美97| 97干在线| 久久草草欧美精品| 亚洲精品黑丝| 综合 欧美 亚洲 日本| 成人性爱全视频观看| 伊人亚洲国产一成人久久精品,久久| 伊人久久大香线综合无码| 99精品九九九九九九| 一本精品日本在线视频精品| 少妇一区二区三区在线观看| 久久久久久人| 久久亚洲精品成人av| 999久久久九| 美美91成人国产精品欧美精品久久久久久久| 国产成自自拍在线观看| 欧美爱三级日韩久久| 久久九九视频九九视频| 五十路熟女,国产欧美精品区一区二区三区| 一区二区不卡| 一区二区三区免费视频入口| 亚洲成人精品久久久| 亚洲天堂资源| 日韩探花精品在线视频| 欧美97视频| 久久在线观看免费视频| 美女操逼福利视频| 啊啊啊啊在线播放| 亚州一区二区成人片免费| 少妇人妻无码| 午夜无遮挡男女啪啪视频| 亚洲天堂女优在线| 黄片免费日韩| 97频视在线| 久久在肏| 67914亚洲精品| 99精品热| 97超碰超欧美。| 亚洲**2021在线观看| 97AV爱| 欧美激情一区| 久久丁香| 看日韩黄片| 亚欧美综合网。| 一级一性爱免费视频| 一本色道无码DVD中文字幕| 妇女乱色二区| 亚洲熟女人妻中文字幕一区二区 | 午夜偷拍久久熟女| 韩日性爱av| 国产精品久久久无码AV网站| 国产 日韩 欧美一区| 蜜桃天美传媒AV一区二区三区| 女人喷水视频在线观看| 中国一区二区亚洲人妻| 精品久久久久久中文| 91色色网站| 91足交| 国产熟女免费观看久久| 免费在线观看国内色片网站网址| av日韩手机在线影视| 欧洲黄色网| 精品无码不卡视频| 亚洲精品一区中文字幕乱码| 亚洲情色一区三区| 国产suv一区二区三区6| 国产精品久久久久久照片| 欧洲亚洲人妻无码高清久久三区四区| 91爱啪| 精品高清一区二区三区三州| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 天天射天天| 操逼www.| 超硑97精品| 丝袜色综合| 欧美后入| 乱日视频| 97综合日韩| 久久久性少妇| 人人操人人摸人 | 免费97视频| 丰满人妻区一区二区三| 超碰人人草| 亚洲综合大片| 国产成年免费大片黄在线观看| 嗯嗯啊操我| 欧美黄色图片| 啪啪视频mP4| 91欧美网| 天天看特黄的免费网站| 大香蕉欧美伊| 无码天天操| 亚洲国产97在线精品一区| 免费久久一级毛片大黄| 91少妇香蕉久久精品| 国产女人高潮嗷嗷嗷叫小说 | 九九黄色网| 91美女小视频| 九九九久久久久| 国产麻豆91欧美一区二区久久婷婷国产精品| 性在久久久久久| 超碰在线观看av不卡| 精品人妻一区二区乱码一区二区| 欧亚免费视频| 久久影视二区三区行押| 91美女视频电影| 日韩成人性爱电影在线播放| 亚洲综合在线第一页| 欧美亚洲丝袜美女电影| 激情看片网站| 天天影视之亚洲综合网| 91+欧美| 柠檬AV导航| 国产亚洲性生活视频播放| 国产久久视频| av强奸乱轮| 欧美亚洲图片| 啊啊啊好舒服视频在线观看| 啊啊啊啊啊在线观看网址| 老司机射| 操逼逼福利视频| 日韩免费簧片| 91国模| 狠狠操狠狠爱| 日韩不卡a级视频专区| 久久激情婷婷| 91欧美网| 综合网91| 老熟女乱伦片| 午夜性生活av免费在线看| 亚洲精品乱码久久久久久蜜桃麻豆| 96AV久久久| 中文字幕亚韩| 色墦五月丁香| 中文字暮97| 中文字幕精品一区二区精品| 日韩乱码Av| 亚洲中文字幕噜噜噜久久久| 欧美成人色| 蜜臀中文字幕| 九九五月天| 天天日天天色| 91超碰人人| 秋霞男人网| 亚洲少妇色图自慰直播| 国产污视频麻豆传媒一区二区| 中文精品一区二去| 日韩精品视频在线观看一卡二卡| 日韩另类色图| 97这里只精品| 亚洲男人在线观看天堂| 黄色免费网| 性爱Av免费| 国产高清成人传媒影视| 99自拍B亚洲| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 东北女人av| 九色精品视频导航1| 天天干干天天干干| 午夜天天碰综合视频| 亚洲Av噜噜一区二区三区妖精| 欧美综合传媒| 日韩性爱毛片操骚逼| 五月婷婷基地| 日韩熟女视频二区| 美女极品一区二区三区| 天天躁日日躁成人字幕aⅴ| 高清国产性猛交xxxx乱大交| 亚洲男人bt天堂| 亚洲丝袜二区在线| 大香蕉欧美伊| 97亚洲综合| 久久婷婷五月| 久久精品超碰| 口爆综合网| 欧亚三区动漫| 色综合色| 久久免费9| 亚洲AV成人在线| 九九人妻| 九九99久久| 夜夜久久久| 超碰91在线| 天天干夜夜操一区二区| 久久女人一区二区三区| 无码人妻一区二区三区免费九色| 99热91| 超碰久久.com| 久久久久13| 欧美高清无码免费视频高清版| 精品视频久久久久九九九九9999| 97综合| 韩国女主播青草在线| 香蕉国产精品麻豆亚洲欧美日韩| 精彩国产视频播放1区2区| 中日韩一区二区三区欧美| 97爱亚洲综合色| 九月激情婷婷| AV中文字幕三四五| 久久av色| 国产成人亚洲精品自产在线| 又摸又舔在线观看网站| 开心激情婷婷| 国产精品白丝在线播放| 少妇精品久久久八区九区| 人人操人人摸人人骑| 色在线亚洲视频www| 老鸭窝黄色视频网站| 能直接看AV的网站| 超碰成人人人爽人人爽| 人人妻天天做天天爽| **一级毛片国产| 波多野42部激情无码喷潮| 69丨亚洲丨精品丨入口免费播放| 啊啊啊不要好疼视频| 一级黄色性爱A级片| 国产精品不卡少妇白| 97超碰资源网| 2019天天操天天爽天天拍| 综合色色婷婷| 婷婷中文网| 精品国产av一区二区三区四区入口| 日本中文字幕熟妇| 精品美女少妇一区二区| 国产情侣自拍在线播放| 国产亚洲精品农村妇女 | 日产操逼| 色牛aV| 抽插亚洲无码| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91操人| 日本啊啊啊啊啊视频| 天天色播| www九九热| 中文字幕123| 自拍视频一区在线观看| 人人操人人插人www| 日本女优在线视频福利| 欧美日韩操操操| 国产精品com| 久久尹人大香焦视| 亚洲91色在线| 九九九久久久W精品| 综合伊人激情| 欧美视频第二页| 性做久久久久久久| 香蕉视频精品亚洲一区二区三区在线播| 91蜜桃婷婷狠狠久久综合9色| 亚洲 日本 不卡| 日韩 人妻 精品| 思思性爱| 91丨九色丨国产丨人妻在线| 亚洲国产福利视频| 精品国产乱码久久久兰草影视| 久久香蕉国产线看观看猫咪av| 九九九九久久久久| 丝袜美女诱惑 91 视频| 丝袜六区| 激情专区综合| 国产精品熟女九色九色蜜臀| 天天综合网日韩| 天天操天天谢| 国产婷婷一区| 欧美色五月| 日韩乱中文| 中日韓欧美高清| 人人澡人人澡人人| 国产肏逼网站| 久久久久久久久久久精| 亚洲爱爱视频一区二区| 国产午夜视频| 中文字幕一区 二 区 三 四 五 区日 日 骚| 18禁中文字幕| 天天看精品动漫视频一区| 一区二区三区四区五区久久久久久| www.一本大99| 95精品在线| 国产欧美日韩在线不卡第一页| 俄罗斯一区二区视频在线观看| 免费观看一区| 国产免费小视频| 九九av| 欧美激情亚洲色图| 久久午夜伦| 桃花色涩综合影院| hd成人一区二区在线| 日本免费一级AAA大片器| 蜜臀久久99精品久久久| 91福利网在线观看| 成人国产视频在线观看| 狠狠婷婷亚洲中文综合久久| 黄色香蕉视频网站一区| 黑人免费福利视频| 男女性无套 免费九一| 99在线精品视频| 视频二区美腿制服人妻欧美| 啊v在线观看视频| 伊人九九九| 日本Suv精品一区二区| 大香蕉草草| 97超碰精品图片| 中文字幕AV中出| 奶水 人妻 哺乳 在线| 91痴汉| 青青草一区二区高清无码视频| 青青操日韩| 久久有码视频| 亚洲性天堂| av网站免费看| 高清无码一区二区三区| 国产精品无码AV网站| 国产做?爰片久久毛片?片美国| 国产乱伦性爱AV| 男女一级A片大黄,一进一出| 五月婷婷丁香| 屌妞视频久久久久久久久久久久| 九九九九九九九九九九精品视频| 国产精品色约约| AV女资源| 亚洲黄色视频在线观看视频| 日韩性爱再线视频| 综合熟女| 国产极品久久久| 91男人天堂网| 春色综合网| 国产精品午夜福利亚洲综合网| 亚洲精品三区在线观看| 国内精品久久久久影院亚洲| 亚洲情色第一页| 97超碰免费人人性爱| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 久/久精品99看9| 婷婷色一区| 精品人妻一区二区乱码一区二区| 久久久久久久9999| 亚洲欧美综合区自拍另类| 六月激情婷婷| 欲射影视| 99色网| 亚洲精品第一| 91在线美女| 欧美激色| 麻豆国产视频精品观看| 综合网色| 一本色道久久综合熟妇| 东北女人无套内谢视频| 亚洲精品乱码久久久久久蜜桃麻豆| 精品视频日日夜夜| 激情久久日韩精品中文字幕麻豆| 永久电影三级在线观看| 亚洲人妻AV| 熟妇人妻一区二区三在线| 资源新线在线天堂| 激情久久久| 欧美在线综合| 婷婷去俺也去六月色| 人人手机欧洲亚洲国产人妻| 亚洲美女精品九九视频| 色yeye成人免费视频| 中文有码第五页| 美女高潮国产高清| 国产激情片在线观看| 日韩天天本| 日本高清免费一本视频在线观看| 蜜桃成人1区2区3区| 亚州精品人妻一二三区| 女同性恋久久| 日本黄页视频在线观看| 欧美成人A天堂片在线观看| 欧美一区二区情色| 婷婷丁香激情| 日韩三级一区| 久久男人天堂| 韩国女主播青草福利视频| 国产激情在线| 激情五月丁香五月| 中文字幕黄色一起草| 操逼操操操91| 情色大香蕉| www…国产操逼| 碰人碰碰人人开房人肉| 亚洲精品精品一区二区| 国产97av| 熟女丰满人妻一区| 亚洲高清无毛一区二区| 五十路二区在线| 亚洲另类小说卡通动漫| 九九九热精品| 综合色99| 中出欧美| 第四色亚洲色图| 偷拍三区| 国产熟女高潮一区二区三区| 国产AV久久久蜜爱影集| 亚洲在线a| 日韩伦理视频| 亚洲精品性爱片| 91操人| www.色婷婷色综合| 老熟女91视频| 污到发麻的视频 国产| 亚洲无码超碰免费| 中文字幕诱惑制服人妻丝袜美丝袜美| 三级片网站在线播放| 人妻天堂三区| 久久久久久91香蕉国产| 97任你吞精| 香蕉99秘 一区精品蜜桃臀| 欧美欲色| 操逼视频免费日韩无码| 久久 精品| 日韩精品99久久久久久中文字幕| 男女真人网18| 秋霞Av理论一级在线| 91av天美性媒精品视频| 婷婷伊人| 亚洲av无码国产精品字幕| 亚洲日韩乱码中文无码蜜桃臀网站| 亚洲欧美日韩精品久| 男女国产精品| SUV一区二区在线看| 大地资源在线观看中文第二页| 精…码一二三区| 日韩精品人妻中文字幕久久久| 欧美一级A片在线看视频性色| 97手机日韩| 亚洲大胆人体av| 99热18| 久久亚洲欧美中文字幕国语| 97干在线视频| 日韩人人精品| 欧美永久激情一区二区| 中出91| 东北丰满熟女国产一区 | 亚欧高清在线| 国产v片在线免费观看| 少妇熟女视频一区二区三区| 超碰97色色| 九九AV| 国产三区免费在线观看| 亚洲一区日韩精品| 亚州综合色| 少好三P| 九九拍拍精品视频在线播放| 91色碰| 久操热线| 国内自拍 日韩激情 99| 再深点灬舒服灬太大了添视频 | 五月丁香色情| 手机看av网站在线看| 日本一区二区三区午夜观看| 搡老女人老91妇女老熟女 | 操人妻少妇中文| 色9999日韩国产| 国产熟女乱论| 青青久久手机线视频| 涩综合导航| 亚洲中文字幕熟女| 日韩欧美日韩| 亚洲精品97| 丰满人妻-区二区三区| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日婷婷| 九九九精品成人免费视频小说| 亚洲图片91| 78m成人视线| 欧美亚州综合网图片| 久久精品六区| 日夜尻逼网| 欧美日日人人天天| 男人的天堂kva| 国产2.3.4区| 久久久久久99999国产精品| 九九九九九九九九九九九蜜桃| 青青欧洲黑| 天天超级碰碰碰| 99国内熟女露脸视频| 欧美青青草视频| 色香欲天天天天综合色| 97色操| 国产精品网址| AVE乱伦| 人妻一二三区| 亚洲天堂无码| 口爆综合网| 在线女人91| 色色综合97| 国产AB视频| 国产精品久久泡妞网站| 日本淫乱女一区二区三区视频| 日韩成人私密一级精品av| 久草尤物| 夜夜影视四色| 亚洲天堂区| 综合干干干av久久久综合网 | av日韩手机在线影视| 久久伊人大香蕉| 91另类| 天天谢天天干| 九九无码视频| 一区二区三区四区五区高清无码永久视频 | 色一射色一射| 天天射夜夜| 九九九九AV| 亚洲男人久久综合天堂| 国产男女无套视频免费观看| 国产高清1234区| 白丝在线一区| 亚州综合色| 黄在线| 欧州色图区| 香蕉色网| 国产无马在线| 性爱综合网| 久久久久9999妇女| 91九色丨风韵犹存| 欧洲一级性爱视频在线观看| 国产欧美一区二区| 精品大全99999| 乱伦熟妇一区二区| 99精品网| 欧美一二级| 操逼视频国产无套| 91美女中出| 亚洲AV在线资源| 黄色大片视频在线免费看| 国产欧美岛国精品一区| 中文字幕av久久爽Av| 日日摸日日弄日日拍| 久综合国内精品自在自线| 97精品综合| 青青青草伊人精品| 人人妻人人爽 97人人看碰人免费公开视频 | 婷婷精品国产一区二区三区日韩| 91色狼| 99色在线| 国产精品另类一区大香蕉| 国产一级特黄大片处女| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 亚洲人妻五月丁香婷婷| 国产综合永久精品日韩鬼片| 色九九九九| 成人精品无码| 久久极品一区二区| 97鸡把在线视频| 一区二区三区精品视频| 九九九精品色乱九九九| 久久久久久日韩| 99抽插| 精品国产91内射久久| 亚洲。日韩。欧美| 超碰免费97| 91欧美高清| 九月婷婷久久| 亚洲第一视频 欧美风情 日韩| 天天天天天天天天天天干美女| 日韩美女,国产传媒,视频一区| 无码动漫av中文字幕| 啊啊啊啊啊在线观看网址| 91丨人妻丨国产丨丝袜| 久久天天摸| 日本阿v天堂在线观看| 老鸭窝亚洲毛片| 91麻豆天美| 蜜桃久久久久久久| 成人影院永久免费观看网址| 丝袜无码a片| 激情抓乳插进去啪啪啪日韩| 天堂资源站| 中文自拍欧美影视| 99久草| 欧美制服网站美腿丝袜| 午夜国产成人精品视频 | 日韩亚洲精品一区二区| 亚洲怡春院| 操操碰| 亚洲有码视频二区| 欧色综合| 思思热影视| 日本不卡中文| 欧美熟妇视频| 亚洲色系另类精品国产| 青青草无码视频| 婷婷丁香五月激情啪啪| 啊啊啊好想要| 欧美91网站| 欧美成人性爱视频大全| 青草精品视频-日本久久久久网站| 日韩pv中文| 中文字幕人成乱码熟女香港| 黑丝制服中文字幕| 怡红院怡春院| 国产呦精品一区二区三区下载| 天天亚洲| 强奸熟女一区二区三区 | av2014 日韩在线中文字幕| http://qxhbdz.com| 无码最新| 97 色综合| 国产乱码精品久久久久久| 乱老女人一区二区视频| 强被迫伦姧在线观看无码网站| 97欧美色综合| 精品国产网站| 性爱av网站| 2025亚洲男人天堂| 播播亚洲小说亚洲| 久久老女人| 欧美激情黑人| 少妇与黑人高潮在线| 日本在线激情一区二区三区| 国产v片在线免费观看| 91亚洲最新在线| 久久久久七视频| 99精品在线| 东北丰满熟女国产一区 | 一区 欧美 日韩 麻豆| 九九黄色网| 美女极品一区二区三区| 欧美一级在线观看成人| 青青草在线视频播放器| 香蕉免费一区二区三区不读| 精品国产网站| 思思99热| 欧美99热| 亚洲四虎熟女精品| 中国国产精品一区视频| 亚洲欧美国产中文视频| 日韩色| 97资源站国产精品| 中文无线日韩一区| 久草综合视频| 亚洲一本色码中文字幕| 麻豆视频test| 天天综合91在线| 黄色av一区二区在线| 亚洲中文一区二区三区| 精品无码久久久久久久杏吧| 性91| 91美女精品| 亚洲脚交| 婷婷探花久久精品一区| 欧美在线干| 东北操逼| 97久久天天综合色天天综合色电影| 久久国模av| 97免费免费视频网| 亚洲欧美setu| 少妇精品久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 大香樵伊人网| 色色五月天激情| 妺妺跟我一起洗澡没忍住| www网站黄| 深田咏美亚洲精品福利社| 嫩草影院性色| 91黑人无码激情在线| 在线观看黄色电话| 久久草大香蕉| 蜜臀久久一区二区| 精彩视频日韩| 久草毛片电影怡| 色www精品视频在线观看| 天天干人妻| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 肏逼视频日本| 国产亚洲精品A在线观看下载| 国产91av在线播放| 久草国产在线视频| 无套内射性感少妇视频| 人妻加勒比东京热| 国产精品亚洲四五区在线观看| 91高跟美女在线播放| 日韩av情韩国爱禁区av一区二区 | 国产精品一二三区福利| 国精品一区二区三| 久操在97| 农村少妇久久久久久久| 婷婷超| av在线一区二区三区| 少妇滛荡视频| 亚洲熟妇乱女区二区三区| 欧美日韩婷婷中文| 欧洲色综合| 亚洲无码偷拍| 欧美午夜一区二区三区| 天天日日夜夜| 美欧老女人97| 亚洲黄色电影| 亚洲黄片免费在线播放| 大伊香蕉在线视频免费| 久无码| 午夜久久久| 中文字幕丰满子伦无码专区在线视频最新| 国产日韩欧美操逼视频 | 丰满人妻区一区二区三| 国产理论视频在线播放| 亚洲不卡AV在线| 久久综合久色欧美综合狠狠| 婷婷五月天激情四射| 国产黄片精品在线| 97资源制服丝袜| 日本熟妇色熟妇在线视频播放| 久久黄人人爽视频| 操逼操逼视频操逼| 久久久9品一区二区三区| 欧洲站一级二级三级h| 人人操人人干xxx| www.色五月| 免费看国产大AB| 国产精品午夜福利亚洲综合网| 久久久18| 午夜精品久久久久久久99| 视频国产欧美在线播放| 色婷婷成人| 后入福利视频| 美国精品国产精品| 91 国产丝袜在线放观看 | 久久精品欧美一区蜜桃| 操老熟女AV| 欧美性爱无码一区二区三区| 熟女丝袜视频| 日韩精品午夜操呦呦不卡影院| 国产精品视频一区二区三区八戒| 99综合自拍| 超碰欧美| 日本熟妇一区二区三区| 日本二区不卡| 国产精品视频白浆免费| 日韩无码久久熟女一级片| 天堂69亚洲精品中文字| 1024亚洲中文字幕久在线看片你懂的| 黑人性欧美| 日本午夜福利影院| 欧洲性人爱视频| 亚洲系列第一页| 亚洲Av噜噜一区二区三区妖精| 久久AV无码AV| 夫妻四区五区六区| 国产捆绑一区| 亚洲免费精品一区| 欧美97| 在线女人91| 农村女一级毛卡片| 人妻夜夜爽天天爽麻豆三区网站 | 人人妻人人爱人人玩| 91久久精品国产| 欧美丰满少妇xx高潮| 九九玖玖精品| 亚洲AV无码秘 蜜桃臀国精产品| 色啪网| 撸无码不卡免费视频| 日本网色| 东京热av影院| 东京热男人的天堂网| 9久久久久| 成人精品电影| 欧美福利视频啊啊啊啊| 精品视频97| 久草视频观看视频在线| 欧美超碰人妻97| 亚洲成人性爱在线观看| 欧美性第1页| 色色色综合网| 国产精品懂色tv影视免费观看| 中文字幕少妇色| 欧美黄色大片在线观看 | 特级大荫道BBwBBwBBW| 91被操| 欧美91精彩| 免费av大片| 天天日天天看| 国产AV天美| 日本三级网页| 久久99九九九九6666免费观看软件| 色av中文字| 亚洲熟女精品| 色网亚洲人| 久久发布国产伦子伦精品| 人人摸.人人色| 五月天精品| 久久免费中文字幕在线观看| 成人一级性爱| 97人人爱人人乐| 蜜桃视频一区二区三区在线观看| 成人八戒网站| 大香蕉综合网| 学生妹天天看| 欧美视频在线第3页| 嗯啊视频免费在线观看| 91制服丝袜| 欧美精品91| 精品人人插人人操| 国产无马在线| 青青久日| 成人色女网| 久久久精品国产亚洲AV无码| 视频国产成人精品日本亚洲18| 四虎在线免费视频| 亚洲天堂人妻一区二区| 日韩一区二区高清在线观看的| 水滴偷拍| 亚洲一区制服诱惑| 草b在线| 999岛国大片| 天天干天天燥| 无码人妻一区二区三区免费九色| 久久视频少妇美女| 91 手机在线播放 绯色| 日本性爱不卡视频| 成人av性爱电影在线观看| 天天干夜夜操一区二区| 磁力99AV| 中文字暮97| 十八禁啪啦拍视频无遮挡| 天天视频网站黄| 先锋女优在线观看视频| 超碰视97中文| 国产成人主播| 97人亚洲综合字幕| 亚洲精品99| 久久免费精品视频免一| 国产在线视频二区| 中文字幕后石码三区四区| 全国男人天堂网| 亚洲日韩久久精品一区| 久久久久久91香蕉国产| 97视频观看| 亚洲五月丁香花狠狠干一区二区三区| 国人欧美精品一区二区| 免费观看国产不卡av| jizz啪啪| 日韩综合无码一区久久92| 成人青青草原伊人| 精品无人区麻豆乱码1区2区图片| 91色色综合| 天天天天天天天天综合| 超碰人妻久久人妻中文97| 亚洲欧洲小说图片视频 | 蜜屁Av| 亚州久久9| 国产精品91ai| 久艹伊人精品综合在线| 亚洲欧美中日韩| 日本免费不卡二区| 偷拍欧美激情| 丝袜狠狠草尤物人妻av91| 久久国产99精品72福利| 黄页18禁| 欧美专利1区2区3区4区5区免费| 手机av天堂久久久久| 欧美综合骚| 亚洲国产剧情少妇激情| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美人人曰人人操人人射射| 亚洲精品免费中文字幕| 岛国片在线播放| 亚洲成人日韩小说| 岛国黄色大片网站| 国产成人久久久精品免费AV| 九九Av| www.欧精品| 69精品人人人人| 神马久久69| 碰人碰碰人人开房人肉| 91M一社| 国产精品96| 亚洲A曰本VA欧美VA视频| 高清无码在线播放网站| 日韩亚洲中文字幕在线| 亚洲 欧美 手机在线观看| 自拍鲍鱼一区在线高清观看免费| 五月婷婷综合激情| 99热亚洲天堂| 亚洲情色图片区| 91N综合网在线| 九九操久久国产免费视频| 亚州一区二区| 国产精品人人爽人人做可爱福利| 高跟丝袜AV专区国产| 日本色婷婷| 麻豆九九九| 97久久国产精品| 青青色在线观看| 亚洲精品三区在线观看| 91人妻Pr| 96AV久久久| 久久久久久免费电影| 大香蕉中文在线| 韩国一级婬片A片无码天美 | 欧美天天干| 国产日韩区| 人人操AV| 热久日综合| 91性感在线| 超碰在线香蕉| 蜜桃久久综合视频| 青青欧洲黑| 日韩射精| 温婉少妇玩3p| 国产四虎在线| 二级毛片| 91视频伊人| 天天色播亚洲综合网站| 自拍盗摄一区| 国产97色在线 | 亚洲| 亚洲男人久久综合天堂| 91狠狠综合久久久| 91久久国产综合精品| 久久国产乱子伦精品免费女,网站| 精品中文字幕第一页| 亚洲性爱高潮影院| 99福利社| av天堂精品久久| 美女啊啊啊啊pc| 91日产桃蜜| 亚洲 日韩 丝袜 熟女 变态| 国产精品91一样| 亚洲欧美综合网| 99久久精品无码一区二区| 人妻精品4K4K4K4K4| 97欧美综合网| 操逼不卡中文字幕| 亚洲91网。| 97精品国产| 99综合视频一体| 精品女同一区| 国产精品免费日韩| 久久成年精品| 婷婷超| 国产乱码久久| 久久免费9| av九九| 中文字幕国产| 天天操天天舔| 锕锕好爽 死我在线观看| 亚洲另类小说卡通动漫| 久久欧洲| 操人人| 天天日天天射天天干| 91在线视频国产网站| 男人亚洲91首页在线| 另类图片天天影视| 亚洲 综合 欧美| 欧美78P| 开心五月婷婷| 亚州男人天堂| 97WW精品| 日本一级真人黄色性爱视频| 国产后入精品| 91综合色噜噜| 96AV久久久| 欧美伊人久久综合网| 男人久久精品| 日韩国产乱子伦App| 高清不卡 中文 人妻| 亚洲少妇中文字幕网址| 99热这里只有精品1| 亚洲色综合| 丰满人妻一区二区三区免费| 超碰超碰95| 国内偷拍精品一区二区| 久久一区,青青青青草视频在线播放| 国产黄色视频久久| 嗯嗯,好大,好爽,好骚| 人妻少妇被猛烈进入中| 欧美激情亚洲情色| 亚洲午夜AV| 精品国产乱码久久久久久蜜臀| 天天看综合网| 亚洲男人久久综合天堂| 欧美一级专区免费大片 | 大香蕉视频啪啪啪啪| 亚洲 欧美 91| 亚洲欧洲中文日韩女优乱码| 超碰这里只有精品| 国产亚洲禁久一区二区 | 亚洲精品丝袜| 国产成人欧美一区二区三区的国产| 国产精品乱码久久久、久久| 色综合久久888| yiqicaoav| 97超碰人操| 九九av| 国产精品久久久无码aV去| 伊人久久亚洲色欲综合网站| 99激情视频| 久久久精品中文字幕爱豆| 91网站在线播放| 四虎 精品 WWW| 日韩丰满熟妇| 欧美性夜| 欧美少妇性乱| 性爱综合网| 成全在线观看免费观看| 亚洲天堂另类| 91在线色| 97人人干| 国产精品久久久久久久AV大片| 天天综合网~91| 五月天色电影| 激情五月综合| 国产极品99热在线播放69| 亚洲欧美情色| 少妇色综合| 日本一区二区电影网站| 久久精品国产亚洲AV无码电影| 久久九色| 一本色道久久综合狠狠操| 99re69综合| 嗯啊不要在线| 精品毛片久久久精品毛片| 国产午夜在线观看| 久久精品操| 98福利在线视频| 日韩女优在线| 久久久精品国产亚洲AV无码| 免费日韩黄片| 国产乱子伦久久精品综合一区二区三| 天堂资源站| 熟妇熟女一区二三区| 久久久久久久人妻| www成人啪啪18秘 免费| 综合国产影视三级| 久艹日日日| 91欧美情色| 香蕉大久久久| 99色婷婷中文字幕乱色| 嗯嗯嗯好爽| 青青草天天亲夜夜操网| 91久久精品中文字幕| 亚洲素人网| 91亚洲情色| 丰满熟妇大乳做爰| 中亚黄色三级大片 | 黄片qw| 极品国产内射| 91熟女丨老女人| 四虎精品亚洲| 四虎免费视频| 91久久久老司机| 欧美猛交黑寡妇中文字幕| 蜜臀人妻少妇久久在线观看| 欧美成人9797| 蜜臀久久99精品久久久老,,| 色色五月天婷婷| 99天堂网| 99综合视频一体| 婷婷久久综合久| 99热在线观看| 五月天精品| 欧美视频在线视频免费va| 日本午夜精品理论片A级APP发布| 无码精品人妻一区二区三区妖精| 日韩av不卡在线看| ji熟女.com| 日本三级一区二区 在线| 国产野战露脸在线播放| 亚洲天堂一区二区久久| 久久精品国产亚洲AV高清演员表| 欧美中文字幕日韩在线| 翔田千里Av在线| 中文日本免费高清| 亚洲日韩美国人妻| 91天堂色男人的天堂| 日亚韩精品视频二区三| 秋霞欧美性爰视频| 午夜男女爽爽爽在线视频| 婷婷色中文字幕| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 超碰99在线| 欧美淫穴| 抽插爽| 欧美黑人168页欧美黑人167|