日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

Oracle应用迁移到AnalyticDB for PostgreSQL指导

發(fā)布時(shí)間:2024/8/23 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle应用迁移到AnalyticDB for PostgreSQL指导 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

AnalyticDB for PostgreSQL(簡(jiǎn)稱:ADB for PG)對(duì)Oracle語(yǔ)法有著較好的兼容,本文介紹如何將Oracle應(yīng)用遷移到AnalyticDB for PostgreSQL。

1 PL/SQL

PL/SQL(Procedural Language/SQL)是一種過(guò)程化的SQL語(yǔ)言,是Oracle對(duì)SQL語(yǔ)句的拓展,使得SQL的使用可以具有一般編程語(yǔ)言的特點(diǎn),因此,可以用來(lái)實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。PL/SQL對(duì)應(yīng)了ADB for PG中的PL/PGSQL

1.1Package

ADB for PG的plpgsql不支持package,需要把package 轉(zhuǎn)換成 schema,并package里面的所有procedure和 function轉(zhuǎn)換成ADB for PG的function。
例如:

create or replace package pkg is … end;

可以轉(zhuǎn)換成:

create schema pkg;
  • Package定義的變量

    procedure/function的局部變量保持不變,全局變量在ADB for PG中可以使用臨時(shí)表進(jìn)行保存。詳見(jiàn)1.4.5節(jié)。
  • Package初始化塊

    如果可以刪掉,就刪掉,刪不掉的話,可以使用function封裝,在需要的時(shí)候主動(dòng)調(diào)用該function。
  • Package 內(nèi)定義的procedure/function

    Package 內(nèi)定義的procedure和function 轉(zhuǎn)成adb for pg的function,并把function 定義到package對(duì)應(yīng)的schema內(nèi)。 例如,有一個(gè)Package名為pkg中有如下函數(shù): FUNCTION test_func (args int) RETURN int is var number := 10; BEGIN … … END; 轉(zhuǎn)換成如下ADB for PG的function: CREATE OR REPLACE FUNCTION pkg. test_func(args int) RETURNS int AS $$… … $$LANGUAGE plpgsql;
  • 1.2 Procedure/function

    對(duì)于oracle的procedure和function,不論是package的還是全局的,都轉(zhuǎn)換成adb for pg 的function。
    例如:

    CREATE OR REPLACE FUNCTION test_func (v_name varchar2, v_version varchar2) RETURN varchar2 ISret varchar(32); BEGINIF v_version IS NULL THENret := v_name; ELSEret := v_name || '/' || v_version;END IF;RETURN ret; END;

    轉(zhuǎn)化成:

    CREATE OR REPLACE FUNCTION test_func (v_name varchar, v_version varchar) RETURNS varchar AS $$DECLAREret varchar(32); BEGINIF v_version IS NULL THENret := v_name; ELSEret := v_name || '/' || v_version;END IF;RETURN ret; END;$$LANGUAGE plpgsql;

    Procedure/function轉(zhuǎn)換的關(guān)鍵點(diǎn):

  • RETURN 關(guān)鍵字轉(zhuǎn)成RETURNS
  • 函數(shù)體使用$\$ ... $\$封裝起來(lái)
  • 函數(shù)語(yǔ)言聲明
  • Subprocedure需要轉(zhuǎn)換成ADB for PG的function
  • 1.3 PL statement

    1.3.1 For語(yǔ)句

    帶有REVERSE的整數(shù)FOR循環(huán)的工作方式不同:PL/SQL中是從第二個(gè)數(shù)向第一個(gè)數(shù)倒數(shù),而PL/pgSQL是從第一個(gè)數(shù)向第二個(gè)數(shù)倒數(shù),因此在移植時(shí)需要交換循環(huán)邊界。
    示例:

    FOR i IN REVERSE 1..3 LOOPDBMS_OUTPUT.PUT_LINE (TO_CHAR(i)); END LOOP;

    轉(zhuǎn)換成:

    FOR i IN REVERSE 3..1 LOOPRAISE ‘%’ ,i; END LOOP;

    1.3.2 PRAGMA語(yǔ)句

    ADB for PG 無(wú)PRAGMA語(yǔ)句,刪除。

    1.3.3 事務(wù)處理

    ADB for PG 的function 內(nèi)部無(wú)法使用事務(wù)控制語(yǔ)句,如begin,commit,rollback等。
    修改方法:

  • 刪除函數(shù)體內(nèi)的事務(wù)控制語(yǔ)句,把事務(wù)控制放在函數(shù)體外;
  • 把函數(shù)按照commit/rollback 拆分成多個(gè)。
  • 1.3.4 EXECUTE語(yǔ)句

    ADB for PG支持類似oracle的動(dòng)態(tài)sql語(yǔ)句,不同之處如下:

  • 不支持using 語(yǔ)法,解決方法是把參數(shù)拼接到sql串中;
  • 數(shù)據(jù)庫(kù)標(biāo)識(shí)符使用quote_ident包裹,數(shù)值使用quote_literal包裹。
  • 示例:

    EXECUTE 'UPDATE employees_temp SET commission_pct = :x' USING a_null;

    轉(zhuǎn)換成:

    EXECUTE 'UPDATE employees_temp SET commission_pct = ' || quote_literal(a_null);

    1.3.5 Pipe row

    Pipe row函數(shù),使用adb for pg的table function來(lái)替換。
    示例:

    TYPE pair IS RECORD(a int, b int); TYPE numset_t IS TABLE OF pair;FUNCTION f1(x int) RETURN numset_t PIPELINED IS DECLAREv_p pair; BEGINFOR i IN 1..x LOOPv_p.a := i;v_p.b := i+10;PIPE ROW(v_p);END LOOP;RETURN; END;select * from f1(10);

    轉(zhuǎn)換成:

    create type pair as (a int, b int);create or replace function f1(x int) returns setof pair as $$declare rec pair; beginfor i in 1..x looprec := row(i, i+10);return next rec;end loop;return ; end$$language 'plpgsql';select * from f1(10);

    說(shuō)明:

  • 自定義類型pair轉(zhuǎn)換成adb for pg的復(fù)合類型pair
  • Table of類型不需要定義,使用adb for pg的setof 替換
  • Pipe row 語(yǔ)句轉(zhuǎn)換成下面兩個(gè)語(yǔ)句:

    rec := row(i);return next rec;
  • 上面的oracle function還可以轉(zhuǎn)換成如下:

    create or replace function f1(x int) returns setof record as $$declare rec record; beginfor i in 1..x looprec := row(i, i+10);return next rec;end loop;return ; end$$ language 'plpgsql';
  • 與第一種改法的不同支持是,不需要提前定義數(shù)據(jù)類型numset_t.正因?yàn)檫@一點(diǎn)所以在查詢的時(shí)候需要指定返回的類型,如下:select * from f1(10) as (a int, b int);

    1.3.6 異常處理

  • 使用raise拋出異常
  • Catch異常后,不能rollback事務(wù),只能在udf外做rollback
  • ADB for PG支持的error,可以參考:?https://www.postgresql.org/docs/8.3/errcodes-appendix.html
  • 1.3.7 function中同時(shí)有Return和OUT參數(shù)

    在adb pg中,不允許fucntion同時(shí)有return和out參數(shù),因此,可以把需要返回的參數(shù)改寫(xiě)成out類型參數(shù)。

    示例:

    CREATE OR REPLACE FUNCTION test_func(id int, name varchar(10), out_id out int) returns varchar(10) AS $body$ BEGINout_id := id + 1;return name; end $body$ LANGUAGE PLPGSQL;

    改寫(xiě)成:

    CREATE OR REPLACE FUNCTION test_func(id int, name varchar(10), out_id out int, out_name out varchar(10)) AS $body$ BEGINout_id := id + 1;out_name := name; end $body$ LANGUAGE PLPGSQL;

    然后select * from test_func(1,’1’) into rec;從rec中取對(duì)應(yīng)字段的返回值即可。

    1.4 PL數(shù)據(jù)類型

    1.4.1 Record

    使用ADB for PG的復(fù)合數(shù)據(jù)類型替換
    示例:

    TYPE rec IS RECORD (a int, b int);

    改寫(xiě)成:

    CREATE TYPE rec AS (a int, b int);

    1.4.2 Nest table

  • Nest table 作為pl 變量,可以使用ADB for PG的array類型替換。
    示例:
  • DECLARETYPE Roster IS TABLE OF VARCHAR2(15);names Roster := Roster('D Caruso', 'J Hamil', 'D Piro', 'R Singh'); BEGINFOR i IN names.FIRST .. names.LASTLOOPIF names(i) = 'J Hamil' THENDBMS_OUTPUT.PUT_LINE(names(i));END IF;END LOOP; END;

    改寫(xiě)成:

    create or replace function f1() returns void as $$declarenames varchar(15)[] := '{"D Caruso", "J Hamil", "D Piro", "R Singh"}';len int := array_length(names, 1); beginfor i in 1..len loopif names[i] = 'J Hamil' thenraise notice '%', names[i];end if;end loop;return ; end$$language 'plpgsql';select f();
  • 作為function返回值,則可以使用table function替換,參考1.3.5節(jié)。
  • 1.4.3 Associative Array

    無(wú)替換類型。

    1.4.4 Variable-Size Arrays

    與nest table 一樣,使用array類型替換。

    1.4.5 Global variables

    目前ADB for PG不支持global variables,一種方法是把一個(gè)package中的所有g(shù)lobal variables存入一張臨時(shí)表(temporary table)中, 然后定義修改、獲取global variables的函數(shù)。

    示例:

    create temporary table global_variables (id int,g_count int,g_set_id varchar(50),g_err_code varchar(100) );insert into global_variables values(0, 1, null,null);CREATE OR REPLACE FUNCTION get_variable() returns setof global_variables AS$$DECLARErec global_variables%rowtype; BEGINexecute 'select * from global_variables' into rec;return next rec; END;$$LANGUAGE plpgsql;CREATE OR REPLACE FUNCTION set_variable(in param varchar(50), in value anyelement) returns void AS$$BEGINexecute 'update global_variables set ' || quote_ident(param) || ' = ' || quote_literal(value); END;$$LANGUAGE plpgsql;

    其中,臨時(shí)表global_variables中,字段id為這個(gè)表的分布列,因?yàn)锳DB for PG中不允許對(duì)于分布列的修改,需要多加一個(gè)這樣的字段。
    tmp_rec record;
    修改一個(gè)全局變量時(shí),使用:select * from set_variable(‘g_error_code’, ‘error’::varchar) into tmp_rec;
    獲取一個(gè)全局變量時(shí),使用:select * from get_variable() into tmp_rec; error_code := tmp_rec.g_error_code;

    1.5 SQL

    1.5.1 Connect by

    Oracle 層次查詢,adb for pg沒(méi)有等價(jià)替換的sql語(yǔ)句。轉(zhuǎn)換思路是使用循環(huán)按層次遍歷。
    示例:

    create table employee(emp_id numeric(18),lead_id numeric(18),emp_name varchar(200),salary numeric(10,2),dept_no varchar(8) ); insert into employee values('1',0,'king','1000000.00','001'); insert into employee values('2',1,'jack','50500.00','002'); insert into employee values('3',1,'arise','60000.00','003'); insert into employee values('4',2,'scott','30000.00','002'); insert into employee values('5',2,'tiger','25000.00','002'); insert into employee values('6',3,'wudde','23000.00','003'); insert into employee values('7',3,'joker','21000.00','003'); insert into employee values('3',7,'joker','21000.00','003'); select emp_id,lead_id,emp_name,prior emp_name as lead_name,salaryfrom employeestart with lead_id=0connect by prior emp_id = lead_id

    轉(zhuǎn)換成:

    create or replace function f1(tablename text, lead_id int, nocycle boolean) returns setof employee as $$declareidx int := 0;res_tbl varchar(265) := 'result_table';prev_tbl varchar(265) := 'tmp_prev';curr_tbl varchar(256) := 'tmp_curr';current_result_sql varchar(4000);tbl_count int;rec record; beginexecute 'truncate ' || prev_tbl;execute 'truncate ' || curr_tbl;execute 'truncate ' || res_tbl;loop-- 查詢當(dāng)前層次結(jié)果,并插入到tmp_curr表current_result_sql := 'insert into ' || curr_tbl || ' select t1.* from ' || tablename || ' t1';if idx > 0 thencurrent_result_sql := current_result_sql || ', ' || prev_tbl || ' t2 where t1.lead_id = t2.emp_id';elsecurrent_result_sql := current_result_sql || ' where t1.lead_id = ' || lead_id;end if;execute current_result_sql;-- 如果有環(huán),刪除已經(jīng)遍歷過(guò)的數(shù)據(jù)if nocycle is false thenexecute 'delete from ' || curr_tbl || ' where (lead_id, emp_id) in (select lead_id, emp_id from ' || res_tbl || ') ';end if;-- 如果沒(méi)有數(shù)據(jù),則退出execute 'select count(*) from ' || curr_tbl into tbl_count;exit when tbl_count = 0;-- 把tmp_curr數(shù)據(jù)保存到result表execute 'insert into ' || res_tbl || ' select * from ' || curr_tbl;execute 'truncate ' || prev_tbl;execute 'insert into ' || prev_tbl || ' select * from ' || curr_tbl;execute 'truncate ' || curr_tbl;idx := idx + 1;end loop;-- 返回結(jié)果current_result_sql := 'select * from ' || res_tbl;for rec in execute current_result_sql loopreturn next rec;end loop;return; end$$language plpgsql;

    1.5.2 Rownum

  • 限定查詢結(jié)果集大小,可以使用limit替換
    示例:
  • select * from t where rownum < 10;

    轉(zhuǎn)換成:

    select * from t limit 10;
  • 使用row_number() over()生成rownum
    示例:
  • select rownum, * from t;
    轉(zhuǎn)換成:

    select row_number() over() as rownum, * from t;

    1.5.3 Dual表

  • 去掉dual
    示例:
  • select sysdate from dual;

    轉(zhuǎn)換成:

    select current_timestamp;
  • 創(chuàng)建一個(gè)叫dual的表。
  • 1.5.4 Select中的udf

    ADB for PG支持在select中調(diào)用udf,但是udf中不能有sql語(yǔ)句,否則會(huì)收到如下的錯(cuò)誤信息:
    ERROR: function cannot execute on segment because it accesses relation "public.t2" (functions.c:155) (seg1 slice1 127.0.0.1:25433 pid=52153) (cdbdisp.c:1326)
    DETAIL:
    SQL statement "select b from t2 where a = $1 "

    轉(zhuǎn)換方法是把select中的udf轉(zhuǎn)換成sql表達(dá)式或者子查詢等
    示例:

    create or replace FUNCTION f1(arg int) RETURN int ISv int; BEGINselect b into v from t2 where a = arg;return v; END;select a, f1(b) from t1;

    轉(zhuǎn)換成:

    select t1.a, t2.b from t1, t2 where t1.b = t2.a;

    1.5.5 (+)多表外鏈接

    ADB for PG 不支持(+)這樣的語(yǔ)法形式,需要轉(zhuǎn)換成標(biāo)準(zhǔn)的outer join語(yǔ)法。
    示例:

    oracle select * from a,b where a.id=b.id(+)

    轉(zhuǎn)換成:

    select * from a left join b on a.id=b.id

    如果在(+)中有三表的join,需要先用wte做兩表的join,再用+號(hào)那個(gè)表跟wte表做outer join。
    示例:

    Select * from test1 t1, test2 t2, test3 t3 where t1.col1(+) between NVL(t2.col1, t3.col1) and NVL(t3.col1, t2.col1);

    轉(zhuǎn)換成:

    with cte as (select t2.col1 as low, t2.col2, t3.col1 as high, t3.col2 as c2 from t2, t3) select * from t1 right outer join cte on t1.col1 between coalesce(cte.low, cte.high) and coalesce(cte.high,cte.low);

    1.5.6 Merge into

    對(duì)于merge into語(yǔ)法的轉(zhuǎn)換,在ADB for PG中先使用update進(jìn)行更新,然后使用GET DIAGNOSTICS rowcount := ROW_COUNT;語(yǔ)句獲取update更新的行數(shù),如果update更新的行數(shù)為0,那么再使用insert語(yǔ)句進(jìn)行插入。

    MERGE INTO test1 t1USING (SELECT t2.col1 col1, t3.col2 col2,FROM test2 t2, test3 t3) SON S.col1 = 1 and S.col2 = 2 WHEN MATCHED THENUPDATESET test1.col1 = S.col1+1,test1.col2 = S.col2+2 WHEN NOT MATCHED THENINSERT (col1, col2)VALUES(S.col1+1, S.col2+2);

    轉(zhuǎn)換成:

    Update test1 t1 SET t1.col1 = test2.col1+1, test3.col2 = S.col2+2 where test2.col1 = 1 and test2.col2 = 2; GET DIAGNOSTICS rowcount := ROW_COUNT; if rowcount = 0 theninsert into test1 values(test2.col1+1, test3.col2+2);

    2 系統(tǒng)函數(shù)轉(zhuǎn)換對(duì)照表

    oracleADB for PG
    sysdatecurrent timestamp
    trunctrunc/ date trunc
    dbms_output.put_lineraise 語(yǔ)句
    decode轉(zhuǎn)成case when/直接使用decode
    NVLcoalesce

    3 數(shù)據(jù)類型轉(zhuǎn)換對(duì)照表

    oracleADB for PG
    sysdatecurrent timestamp
    trunctrunc/ date trunc
    dbms_output.put_lineraise 語(yǔ)句
    decode轉(zhuǎn)成case when/直接使用decode
    NVLcoalesce
    oracleADB for PG
    VARCHAR2varchar or text
    DATEtimestamp
    LONGtext
    LONG RAWbytea
    CLOBtext
    NCLOBtext
    BLOBbytea
    RAWbytea
    ROWIDoid
    FLOATdouble precision
    DECdecimal
    DECIMALdecimal
    DOUBLE PRECISIONdouble precision
    INTint
    INTERGEinteger
    REALreal
    SMALLINTsmallint
    NUMBERnumeric
    BINARY_FLOATdouble precision
    BINARY_DOUBLEdouble precision
    TIMESTAMPtimestamp
    XMLTYPExml
    BINARY_INTEGERinteger
    PLS_INTEGERinteger
    TIMESTAMP WITH TIME ZONEtimestamp with time zone
    TIMESTAMP WITH LOCAL TIME ZONEtimestamp with time zone


    原文鏈接
    本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

    總結(jié)

    以上是生活随笔為你收集整理的Oracle应用迁移到AnalyticDB for PostgreSQL指导的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    91麻豆精品国产91久久久无限制版 | 黄色小视频在线观看免费 | 欧美日韩国产一区二区三区在线观看 | 亚洲天堂精品视频 | 亚洲不卡123 | 黄色免费看片网站 | 精品久久久久久久久久 | 最近中文字幕免费观看 | av网站免费看 | 久久久久久久久毛片 | 人人添人人澡人人澡人人人爽 | 欧美视频国产视频 | 能在线观看的日韩av | 久久久久久97三级 | 久久国内精品视频 | 青青久视频| 亚洲人在线 | 久亚洲 | 狠狠狠色丁香综合久久天下网 | 午夜免费福利视频 | 久久久久免费精品视频 | 精品国产乱码久久久久久1区二区 | 午夜91在线 | 久久久国产影视 | 久久激情小说 | 免费看日韩片 | 韩国av一区二区三区 | 在线看av的网址 | 综合在线色 | 国产高清视频免费 | 又黄又爽的视频在线观看网站 | 国产精品第十页 | 国产精品嫩草在线 | 国产一区二区视频在线播放 | 久久久久电影 | 国产 一区二区三区 在线 | 婷婷成人在线 | 久久久久亚洲国产 | 欧美一区三区四区 | 精品免费在线视频 | 久久国产精品系列 | 精品爱爱 | 欧美性猛片,| 国产999精品久久久久久 | 国产精品igao视频网网址 | 中国黄色一级大片 | 久久精品国产成人精品 | 国产美女黄网站免费 | 久久69精品久久久久久久电影好 | 91在线中文| 91久草视频 | 日韩视频在线不卡 | 亚洲精品国产综合久久 | 午夜精品久久久久久99热明星 | 亚洲国产精品va在线看黑人动漫 | 超级碰视频| 免费在线播放黄色 | 亚洲精品国产成人 | 国产亚洲精品久久19p | 91亚洲精品久久久中文字幕 | 欧美久久成人 | 国产精品2020| 激情欧美丁香 | 中文字幕乱视频 | 午夜久草 | 在线精品一区二区 | 最近中文字幕在线 | 亚洲区精品 | 欧美日产一区 | 精品无人国产偷自产在线 | 亚洲资源片 | 久久精品毛片基地 | 女女av在线 | 欧美精品乱码99久久影院 | www看片网站 | 日韩精品你懂的 | 又湿又紧又大又爽a视频国产 | 福利视频一区二区 | 夜夜操天天操 | 成人欧美一区二区三区在线观看 | 久艹视频在线观看 | 免费一级毛毛片 | 免费看十八岁美女 | 国产精品免费人成网站 | 天天干天天做天天爱 | wwxxxx日本 | 黄色一级大片在线观看 | 欧美黄色特级片 | 91精品区 | 亚洲专区路线二 | 成年人在线电影 | 国产欧美综合视频 | 国产69精品久久99的直播节目 | 国产在线日韩 | 在线观看911视频 | 免费黄在线观看 | 天天射日| 在线免费视频 你懂得 | 亚洲午夜久久久久久久久电影网 | 国产成人精品一区二区三区福利 | 超碰在线日本 | 国产99一区视频免费 | 亚洲一区二区三区毛片 | av黄色在线观看 | 欧美精品一区二区性色 | 亚洲成aⅴ人在线观看 | 国产亚洲资源 | 四虎在线永久免费观看 | 国产生活一级片 | 色综合久久网 | 欧美精品乱码久久久久久 | 亚洲精品成人av在线 | 久草在线看片 | 国产香蕉97碰碰久久人人 | 最近免费中文视频 | 欧美精品免费在线 | 欧美日韩xx | 99麻豆视频 | 国产精品va在线观看入 | 青青看片 | 国产亚洲免费的视频看 | 婷婷网站天天婷婷网站 | 久久精品9 | 久久精品久久久久久久 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 国产小视频免费观看 | 操操碰 | 国产精品99免视看9 国产精品毛片一区视频 | 99免费视频 | 国产黄色电影 | 亚洲精品美女在线观看播放 | 在线日韩| 久久视影 | 又黄又爽又湿又无遮挡的在线视频 | 在线观看日韩 | 亚洲精品国产麻豆 | 97精品国产aⅴ | av中文字幕第一页 | 丁香婷婷深情五月亚洲 | 婷婷色狠狠| 日韩免费电影网 | 在线观看片 | 奇米7777狠狠狠琪琪视频 | 欧美 日韩 国产 成人 在线 | 国产精品剧情 | 99精品黄色 | 国产打女人屁股调教97 | www.伊人网 | 久操97 | 日日夜夜精品视频天天综合网 | 国产伦理一区二区三区 | 日韩高清dvd | 色综合久久综合中文综合网 | 91精品国产自产在线观看 | 国产又黄又猛又粗 | 欧美日韩后 | 国产精品国产亚洲精品看不卡 | 操少妇视频 | av电影免费在线看 | 亚洲最大在线视频 | 中文 一区二区 | 亚洲色影爱久久精品 | 日韩久久久久久久久 | 九九热在线视频免费观看 | 韩国av永久免费 | 四虎www | 成人av在线影视 | 蜜臀aⅴ国产精品久久久国产 | 五月天狠狠操 | 日韩欧美成 | 国产精品视频观看 | 国产成人在线精品 | 亚洲,国产成人av | 高清一区二区三区 | av东方在线 | 久久大视频 | 色综合天天狠天天透天天伊人 | 中文字幕一区二区三区四区在线视频 | 成人中心免费视频 | 欧美成年人在线观看 | 精品一区精品二区高清 | 狠狠躁18三区二区一区ai明星 | 国产亚洲精品成人av久久影院 | 日韩欧美在线一区二区 | 免费视频久久久 | 国产精品国产三级国产aⅴ无密码 | 特级西西444www大精品视频免费看 | 成人91在线观看 | www.国产在线观看 | 久久艹影院 | 色资源在线观看 | 色爱区综合激月婷婷 | 女人久久久久 | 国产96视频| 992tv在线成人免费观看 | 日本黄网站 | 黄色三级免费看 | 日本久久精品视频 | 亚洲国产精品成人av | 91视频在线网址 | 97色综合 | 99热在线这里只有精品 | 免费国产亚洲视频 | 亚洲成人黄色在线观看 | 成人h动漫精品一区二 | 久草在线手机视频 | aaa日本高清在线播放免费观看 | 黄色日本片 | 亚洲国产精品va在线看黑人动漫 | 免费精品国产va自在自线 | 最近免费观看的电影完整版 | 国产精品久久久久久婷婷天堂 | 日韩一区二区三区在线观看 | 欧美精品久久久久久久亚洲调教 | 欧美性极品xxxx娇小 | 久久精品高清视频 | 91porny九色在线播放 | 99亚洲精品 | 国产 中文 日韩 欧美 | 操操操干干干 | 国产精品中文 | 人人爽人人片 | 一区二区三区免费在线播放 | 狠狠的操你 | 亚洲激情视频在线 | 免费在线成人av | 天堂视频一区 | 五月天天色| 99热99热 | 天天色综合三 | 99热高清 | 日韩av电影网站在线观看 | 日本黄色一级电影 | 玖玖国产精品视频 | 一区二区三区中文字幕在线 | 色婷婷97 | 五月婷香蕉久色在线看 | 欧美另类sm图片 | 亚洲国产三级在线观看 | 欧美日韩xx | 欧美日韩国内在线 | 日日干美女 | 天天操天天操天天操天天操天天操 | 欧美日韩视频在线观看一区二区 | www黄色大片 | 超碰人人av | 亚洲 欧洲av | 亚洲爱视频| 日韩一级片大全 | 久久久一本精品99久久精品 | 国产在线不卡精品 | 成人av播放 | 天天干天天操天天操 | 麻豆精品视频在线观看免费 | 欧美成人性战久久 | 日韩免费在线一区 | 狠狠狠综合| 国产福利午夜 | 国产午夜精品一区 | 最近中文字幕在线播放 | 天天操夜夜想 | 丁香色婷| 亚洲成年人在线播放 | 日本资源中文字幕在线 | 97免费在线视频 | 99久久精品国产免费看不卡 | 97在线观看免费高清完整版在线观看 | av一区在线| 久草在线视频在线观看 | 国产福利一区二区三区视频 | 96亚洲精品久久久蜜桃 | 国产专区欧美专区 | 国产一区精品在线观看 | 久久精品网站免费观看 | 久久综合偷偷噜噜噜色 | 精品亚洲视频在线 | 四虎国产精品成人免费影视 | 日韩久久午夜一级啪啪 | 97视频资源| 国产精品 中文字幕 亚洲 欧美 | 国产精品99久久99久久久二8 | 高清av网 | 天天激情 | 在线观看深夜福利 | 在线观看中文字幕dvd播放 | 97天天综合网 | 在线国产视频一区 | 日韩在线视 | 一区二区三区精品在线视频 | 欧洲亚洲激情 | 亚洲第一成网站 | 久久久久伦理电影 | 亚洲激情五月 | 日韩在线视频免费观看 | 亚洲精品综合在线观看 | 五月丁色 | 亚洲精品国产精品国自产观看 | 黄色小网站在线观看 | 久久y| 中日韩三级视频 | 91在线视频免费91 | 99久久99久久综合 | 在线中文字幕播放 | 日韩精品久久久免费观看夜色 | 亚洲精品国产精品乱码在线观看 | 午夜视频播放 | 久久久精品欧美一区二区免费 | 精品美女在线视频 | www.黄色网.com| 欧美一级视频免费 | 婷婷亚洲综合 | 91av电影在线观看 | 国产精品一区二区久久 | 国产一区视频免费在线观看 | 香蕉视频在线免费 | 国产成人精品综合久久久 | 人人干人人模 | 久久99久久99精品免费看小说 | 天天草天天 | 成年人免费av | 久久理论电影网 | 国产精品免费不卡 | 亚洲精品看片 | 成年人免费看的视频 | av在线激情 | 日日狠狠 | 青草视频在线 | 人人射av| 免费av 在线 | 免费特级黄毛片 | 久久9精品 | 欧美精品中文 | av中文字幕网 | 中文字幕在线观看完整版电影 | 国产又粗又长的视频 | 亚洲高清在线观看视频 | 91亚色在线观看 | 国产精品视频在线观看 | 国产一区二区在线观看视频 | 国产精品婷婷午夜在线观看 | 99九九热只有国产精品 | 欧美一区二区三区激情视频 | 成人免费电影 | 国产三级精品在线 | 亚洲狠狠婷婷 | 欧美成年性 | 国产超碰在线 | 亚洲黄a | 日韩理论电影网 | 亚洲黄色av| 手机看片福利 | 美女免费视频一区 | 精品久久一区二区三区 | 欧美精品久久久久久久久久久 | 手机在线免费av | 久久久久国产精品一区二区 | 日韩av视屏在线观看 | 久精品视频免费观看2 | 色婷婷成人| 久久久免费高清视频 | 国产日韩欧美视频在线观看 | 成人av片在线观看 | 欧美看片 | 黄视频网站大全 | 中文字幕高清 | 91麻豆精品国产91久久久无需广告 | 久久免费视频2 | 欧美日在线观看 | 亚洲区精品 | 夜夜操天天 | 国产91电影在线观看 | 国产视频69 | 日本夜夜草视频网站 | 国产视频精选在线 | 日韩欧美视频在线观看免费 | 午夜影视一区 | 色综合天天天天做夜夜夜夜做 | 成人国产网站 | 免费成视频 | 国产精品 中文字幕 亚洲 欧美 | 99久久精品免费看国产四区 | 深爱婷婷激情 | 九九视频在线播放 | 国产精品xxxx18a99 | 人成午夜视频 | 97国产大学生情侣白嫩酒店 | 欧美成人精品欧美一级乱黄 | 国内精品久久久久国产 | 国产录像在线观看 | 草久在线| 国产不卡精品 | 国产美女精品久久久 | 日日干天天| 91麻豆精品91久久久久同性 | 日韩欧美高清 | 国产亚洲视频中文字幕视频 | 在线看一区二区 | 婷婷亚洲综合 | 国产精品剧情 | 国产精品美女久久久久久网站 | 日日干视频 | zzijzzij亚洲日本少妇熟睡 | 欧美做受高潮1 | 日日日爽爽爽 | 人人干狠狠干 | 欧美污污视频 | 精品亚洲欧美一区 | 日本不卡一区二区三区在线观看 | 久久久黄视频 | 91完整版在线观看 | 国产成人精品久久亚洲高清不卡 | 欧美性一级观看 | 日日综合网 | 97在线精品国自产拍中文 | 久香蕉 | 免费观看9x视频网站在线观看 | 欧美久久久一区二区三区 | 超碰在线色 | 久久久久久久综合色一本 | 九九久久精品视频 | 亚洲精品456在线播放乱码 | 久久99精品久久久久久久久久久久 | 91九色porny在线 | 免费色视频在线 | 四虎影视成人 | 国产激情免费 | 亚洲精品国产麻豆 | a√天堂中文在线 | 成人观看视频 | 国产精品福利在线 | 久99久精品 | 国产成人一区二区三区免费看 | 欧美日韩一二三四区 | 黄色片视频在线观看 | 国产精品成人在线观看 | 成年人视频在线免费播放 | 久久99热这里只有精品国产 | 全黄色一级片 | 狠狠插狠狠操 | 三级小视频在线观看 | 亚洲爽爽网 | 久久综合网色—综合色88 | 国产一二三四在线观看视频 | 久久久久久欧美二区电影网 | 亚洲国产伊人 | 韩国一区二区在线观看 | 国产在线2020| 在线电影av | 中文字幕亚洲五码 | 视频福利在线观看 | 丁香六月色 | 亚洲自拍av在线 | 国产视频在线免费 | 亚洲精品国产精品国自产观看浪潮 | 精品一区二区三区久久 | 国产不卡视频在线播放 | 国产精品理论片在线观看 | 日韩二区三区在线观看 | 在线免费观看成人 | 国产99久久久国产精品免费二区 | 亚州精品国产 | 亚洲电影黄色 | 国产高清视频在线播放一区 | 欧美日韩国产页 | 日韩欧美在线一区二区 | 国产精品免费久久久 | 97伊人网 | 免费看一级片 | 樱空桃av| 国产精品成人一区二区三区吃奶 | 在线三级av | 制服丝袜在线91 | 丝袜足交在线 | 国产xx在线| 成人免费一级 | 成人wwwxxx视频 | 中文字幕资源网 国产 | 丁香婷婷电影 | av观看在线观看 | 亚洲成人欧美 | 国产一二三四在线观看视频 | 天天av资源 | 欧美 亚洲 另类 激情 另类 | 美女视频a美女大全免费下载蜜臀 | 日韩精品一区不卡 | 五月婷在线播放 | a色视频 | 黄色视屏在线免费观看 | 亚洲黄色软件 | 久久久久久久久久免费 | 男女拍拍免费视频 | 国产亚洲人 | 在线免费国产 | 成年人黄色免费网站 | 四虎在线观看网址 | 国产精品一区二区久久精品爱涩 | 亚洲欧美视频在线观看 | 国产精品乱码久久久久 | 国产91学生| 国产69精品久久99不卡的观看体验 | 国产精品入口66mio女同 | 成人免费在线播放 | 91麻豆精品国产自产在线 | 成人黄色小说视频 | 日韩成人免费在线观看 | 久久不卡国产精品一区二区 | 五月婷婷综合在线观看 | 夜夜夜精品 | 99热这里只有精品久久 | 久久精品99久久 | 少妇av片| 俺要去色综合狠狠 | 欧美精品久久久久久久久久丰满 | 日韩视频一区二区三区在线播放免费观看 | 久久免费视频这里只有精品 | 久久久久国产精品免费免费搜索 | 91精品区 | 午夜久久精品 | 亚洲精品乱码久久久久久久久久 | 深夜免费小视频 | av在线直接看 | 午夜精品视频一区二区三区在线看 | 99视频在线精品 | av免费网| 亚洲视频在线看 | 色综合久久精品 | 久久99久久99精品免观看粉嫩 | 久久看毛片 | 免费国产一区二区 | 国产亚洲综合精品 | 国产精品色婷婷视频 | 91av资源网| av在线精品 | 97操操| 欧美日韩亚洲国产一区 | 香蕉影院在线 | 日韩中文字幕第一页 | 日韩天天综合 | 免费a级毛片在线看 | 日韩精品一区二区在线视频 | 国产最顶级的黄色片在线免费观看 | 最新久久免费视频 | 国产精品亚洲精品 | 香蕉91视频 | 国产黄a三级三级三级三级三级 | 热热热热热色 | 精品亚洲成a人在线观看 | 国产高清区| 欧美久久九九 | 久久99精品一区二区三区三区 | 国产精品久久久久久久久久久久久久 | 久草在线一免费新视频 | 亚洲精品视频免费在线 | av中文字幕不卡 | 国产精品成人一区二区 | 国产高清在线观看 | 美女国产精品 | 国产99久久久精品视频 | 欧美伦理一区二区三区 | av福利在线导航 | 日韩国产精品一区 | 狠狠色狠狠色综合系列 | 亚洲综合色av | 亚洲永久精品在线观看 | 中文字幕在线字幕中文 | av日韩不卡 | 久久 在线 | 成人av一级片 | 日本视频高清 | 午夜视频免费在线观看 | 国产精品成人免费精品自在线观看 | 国内少妇自拍视频一区 | 日本中文字幕在线视频 | 欧美超碰在线 | 久久久久久久久久久免费视频 | 夜夜爽88888免费视频4848 | 亚洲午夜久久久久久久久 | 国产精品久久久久久久久婷婷 | 免费视频一级片 | 狠狠搞,com| 天天干天天操天天干 | 国产视频日本 | 国产不卡一区二区视频 | 国产精品久久久久久久久久不蜜月 | 久久看毛片 | 国产精品日韩欧美一区二区 | 亚洲最新毛片 | 美州a亚洲一视本频v色道 | 国产精品久久久久久吹潮天美传媒 | 中文字幕在线一区观看 | 韩国av不卡 | 成人黄色中文字幕 | 免费久久99精品国产婷婷六月 | 国产精品嫩草在线 | 欧美黑吊大战白妞欧美 | 91丨九色丨国产丨porny精品 | 亚洲国产美女精品久久久久∴ | 992tv人人网tv亚洲精品 | 免费日韩一区二区三区 | 午夜美女wwww | 涩涩成人在线 | 在线成人高清电影 | 亚洲精品乱码久久久久v最新版 | 亚洲成人av一区 | 天天干天天操天天入 | 九九久久成人 | 免费av高清 | 色a综合 | 久草在线观看视频免费 | 欧美日韩高清一区 | 日韩av电影一区 | 国产资源网站 | 91在线国产观看 | 成年人黄色在线观看 | 天天拍天天操 | 亚洲一级电影视频 | www日韩视频 | 久久99国产视频 | 免费网站污| av成人免费观看 | 欧美一区三区四区 | 国产美女网站视频 | 四虎影视8848aamm | 久草视频播放 | 日韩免费成人av | 中文字幕免费高清av | 午夜日b视频 | 国产日产在线观看 | 成年人在线免费看视频 | 五月情婷婷| 日韩免费高清在线观看 | 日韩 在线| 日韩精品在线播放 | 午夜精品久久久久久久99无限制 | 91久久精品日日躁夜夜躁国产 | 日p在线观看 | 人人干人人艹 | 91在线视频导航 | 伊人网av | 久久婷亚洲五月一区天天躁 | 丁香婷婷色月天 | 美女网站视频免费黄 | 91高清视频在线 | 国产99在线 | 黄色av播放 | 国产黄色免费观看 | 国产福利在线免费 | 黄色aaa毛片| www天天干com | 狠狠成人 | 日日夜夜网 | 国产成人精品综合久久久 | 日本在线视频一区二区三区 | 免费人成在线观看网站 | 日韩精品一区二区三区中文字幕 | 亚洲六月丁香色婷婷综合久久 | 在线v片免费观看视频 | 免费在线观看国产精品 | 日本夜夜草视频网站 | 日日夜夜干 | 国产精品永久在线观看 | 五月天亚洲综合小说网 | 国产午夜影院 | 四虎影视欧美 | 九九九电影免费看 | 国产91丝袜在线播放动漫 | 人人爱在线视频 | 人人玩人人爽 | 免费色婷婷 | 免费黄色小网站 | 国产91勾搭技师精品 | 超碰伊人网 | 国产91精品看黄网站在线观看动漫 | 国产亚洲精品美女久久 | 亚洲综合在 | 免费看污在线观看 | 亚洲激情校园春色 | 国产永久免费高清在线观看视频 | 久久乐九色婷婷综合色狠狠182 | 免费又黄又爽 | 欧美成人黄色片 | 国产小视频在线免费观看 | 久久国语| 日韩91在线 | 狠狠久久| 久久人91精品久久久久久不卡 | 最近日本韩国中文字幕 | 久久久国产精品亚洲一区 | 国产午夜精品一区二区三区欧美 | 日韩视频1区| 日日爽天天 | 国产 精品 资源 | 97在线观看免费高清完整版在线观看 | 国内精品视频一区二区三区八戒 | 亚洲精品日韩av | 2019天天干夜夜操 | 天天操天天操天天操天天操 | 黄色三级av | 久久久久国产一区二区三区 | 天天艹天天 | 色天天天 | 日本久久视频 | 亚洲理论在线观看 | 成人欧美亚洲 | 亚洲女同videos | 国产视频日韩视频欧美视频 | av免费看电影 | 色婷婷影视 | 成人永久在线 | 久久男人视频 | 特黄一级毛片 | 99热99| 888av| 久久视频国产 | 久久日本视频 | 日本激情视频中文字幕 | 国产精品久久久久久久99 | 五月天六月丁香 | 91av影视| 99久久婷婷国产精品综合 | 欧美日韩性视频在线 | 久久欧美精品 | 久久午夜网 | 日韩中文字幕视频在线 | 久草干 | 精品国产亚洲在线 | 亚洲国产中文在线 | 97久久精品午夜一区二区 | 国产精品久久久久久久av大片 | 久久精品在线免费观看 | 国产日产亚洲精华av | 五月婷在线播放 | 在线三级播放 | 免费观看午夜视频 | 97福利在线观看 | 欧美精品一区二区三区一线天视频 | av高清一区 | 国产视频亚洲精品 | 亚洲精品视频在线免费播放 | 97超碰影视| 婷婷五月在线视频 | 97国产大学生情侣酒店的特点 | 免费在线激情电影 | 99理论片 | 人人干人人做 | 日韩在线播放视频 | 亚洲精品视频中文字幕 | 精品1区2区3区 | 成年人视频在线免费 | 天天干夜夜想 | 亚洲最大色| 久久久久99999 | 久久乐九色婷婷综合色狠狠182 | 国产一级片免费播放 | 久久综合婷婷综合 | 欧美精品999 | 成人啊 v| 亚洲国产精品久久久久久 | 久久成人黄色 | bbb搡bbb爽爽爽 | 欧美日韩国产亚洲乱码字幕 | 欧美性视频网站 | 狠狠色伊人亚洲综合网站色 | 免费在线激情电影 | 亚洲国产中文在线观看 | 成人黄在线观看 | 国产精品无av码在线观看 | 中文字幕在线播放视频 | 亚洲精品美女免费 | 亚洲日本韩国一区二区 | 欧美性直播 | 91亚洲精品国偷拍自产在线观看 | 美女在线黄 | 蜜桃视频日韩 | 国产又粗又猛又色 | 日本中文字幕视频 | 97视频资源 | 午夜精品一区二区三区在线播放 | 欧美日韩国产精品一区 | 久久这里只有精品9 | 日韩精品久久久免费观看夜色 | 亚洲精品国产自产拍在线观看 | 久久视频国产精品免费视频在线 | 欧美久草网 | 天堂在线免费视频 | 国产一区二区三区四区在线 | www.亚洲精品在线 | 国产69精品久久99的直播节目 | 国产成人黄色片 | 午夜视频在线观看网站 | 在线日韩亚洲 | 国产99久久久国产 | 美女又爽又黄 | 久操久 | 九草在线观看 | 亚洲区另类春色综合小说 | 激情五月激情综合网 | 久久超| 国产精品久久久一区二区 | 久久视频热 | 免费观看www小视频的软件 | 人人澡人摸人人添学生av | 亚洲欧洲国产视频 | 色天天中文 | 国产精品自拍在线 | 五月天婷亚洲天综合网精品偷 | 精壮的侍卫呻吟h | 91精品91| 91av视频播放 | 超碰在线97免费 | 日韩美女免费线视频 | 国产老妇av | 手机av电影在线 | 国产精品免费大片视频 | 欧美日韩中文视频 | 成人在线观看资源 | 色视频在线免费观看 | 精品欧美一区二区三区久久久 | 国产精品视频线看 | 五月天丁香综合 | 成人日韩av | 国产我不卡 | 视频一区在线免费观看 | 99在线免费视频 | 欧美激情精品久久久久久 | 久久久国产精品电影 | 久久精品欧美日韩精品 | 成人久久18免费网站 | 婷婷久久国产 | 久久在线免费观看视频 | www久久精品 | 91pony九色丨交换 | 成年人网站免费在线观看 | 久久国产精品区 | 正在播放国产一区 | 日韩免费电影在线观看 | 亚洲永久精品视频 | 精品免费观看 | 精品久久免费看 | 成人中文字幕在线观看 | 色婷婷av在线 | 不卡精品视频 | 97av在线视频免费播放 | 黄色三级在线看 | 国产综合片 | 久久黄色网页 | 国产高清视频在线 | 伊人导航 | 97视频免费在线观看 | 亚洲国产精品久久 | 久久久久久久久久久久国产精品 | 欧美亚洲成人免费 | 国产又粗又猛又黄又爽的视频 | 三级av在线免费观看 | 婷婷色中文网 | 亚洲精品国产综合99久久夜夜嗨 | 日韩成人精品一区二区三区 | 久久艹99 | 99久久er热在这里只有精品15 | 久久视频免费观看 | 992tv人人草| 国产视频一区精品 | 亚洲va欧美va人人爽 | 欧美一级片免费 | 日日夜夜狠狠操 | 国产在线播放一区二区 | 久久久久亚洲精品成人网小说 | 激情五月婷婷丁香 | 久久黄网站 | 狠狠色香婷婷久久亚洲精品 | www激情com | 天天干天天射天天插 | 国产精品系列在线 | 成人免费xxx在线观看 | 性色av免费看 | 又爽又黄在线观看 | 成年人在线电影 | 黄色成人免费电影 | 国产精品久久久久久久久久了 | 成人久久久精品国产乱码一区二区 | 欧美激情视频在线免费观看 | 香蕉影视 | 国产福利一区二区三区视频 | 亚洲国产欧美一区二区三区丁香婷 | 国产婷婷视频在线 | 亚洲欧洲精品一区二区 | 69久久夜色精品国产69 | 日韩视频在线播放 | 国产精品不卡在线 | 国产高清在线看 | 天天操综 | 欧美一级片在线免费观看 | 亚洲在线资源 | 国产在线精品一区二区三区 | 色网站在线观看 | 亚洲激情网站免费观看 | 国产伦理一区 | 中文字幕色综合网 | 婷婷五情天综123 | 欧美伊人网 | 日韩高清在线一区二区 | 视频一区二区视频 | 国产福利一区二区三区在线观看 | 毛片的网址 | 亚洲成人av在线 | 免费特级黄毛片 | 国产一区二区网址 | 日韩在线视频观看 | 色中色综合 | 少妇自拍av | 91成人网在线播放 | 美女国产免费 | 日本在线观看中文字幕 | 国产又粗又硬又长又爽的视频 | 又黄又色又爽 | 国产精品va在线观看入 | 麻豆成人在线观看 | 久久国产品 | 国产拍在线 | 日韩国产高清在线 | 麻豆久久久久 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产天天综合 | 99国产在线观看 | 久久综合之合合综合久久 | 久久狠狠亚洲综合 | 99精品国产一区二区三区麻豆 | 婷婷在线视频观看 | www.91成人| 亚洲国产一区二区精品专区 | 91成人免费看片 | 国产精品18毛片一区二区 | 福利久久久 | 免费看的黄色的网站 | 四虎国产精品成人免费影视 | 国产69精品久久久久久 | 91精品入口 | 91视频传媒 | 性色va| 久久久激情网 | 日本中文字幕在线看 | 国产精品成人一区二区 | 亚洲一区二区观看 | 深爱激情婷婷网 | 成人黄在线观看 | 少妇精品久久久一区二区免费 | 中文字幕电影高清在线观看 | 日韩免费福利 | 夜夜夜夜爽| 在线观看免费福利 | 久久美女视频 | 久久精品超碰 | 国产91免费观看 | 四虎成人精品在永久免费 | 夜夜高潮夜夜爽国产伦精品 | 九九综合在线 | 探花视频在线观看+在线播放 | 黄色软件视频大全免费下载 | 日韩精品久久久 | 激情视频在线观看网址 | 欧美日韩一区三区 | 成人a v视频| 国产精华国产精品 | 亚洲女欲精品久久久久久久18 | 日韩精品在线看 | 国产成人久久精品亚洲 | 激情婷婷在线观看 | 麻豆免费看片 | 在线观影网站 | 99久久激情 | 看片在线亚洲 | 久久精品国产一区 | 涩av在线| 成人久久影院 | 午夜性色 | 亚洲欧美日韩精品一区二区 | 黄污视频网站大全 | 成人久久久久 | 9在线观看免费 | 一区二区电影在线观看 | 91视频啪 | 中文字幕日本在线观看 | 五月综合| 日韩激情视频在线观看 | 在线观看国产麻豆 | 亚洲精品免费在线视频 | 国产精品久久久久久久久久久免费看 | 最新av在线网址 | 91精品一区二区三区久久久久久 | 免费中文字幕在线观看 | 黄色三级在线观看 | 欧美福利精品 | 午夜精选视频 | 久久免费视频在线观看6 | 13日本xxxxxⅹxxx20 | 欧美精品亚州精品 | 欧美一级xxxx | 国产色拍|