plsql developer 怎样回滚删除视图 *** 作

plsql developer 怎样回滚删除视图 *** 作,第1张

Edit/Undo Ctrl+Z

Edit/Redo Shift+Ctrl+Z

Edit/PL/SQL Beautifier Ctrl+W (自定义)

Shift+Home 选择光标位置到行首

Shift+End 选择光标位置到行尾

Ctrl+Shift+Home 选择光标位置到首行行首

Ctrl+Shift+End 选择光标位置到尾行行尾

Object:View Shift+Ctrl+V 查看 (自定义)

Object:Describe Shift+Ctrl+D 结构 (自定义)

Object:Properties Shift+Ctrl+P 属性 (自定义)

Object:Browse Shift+Ctrl+B 浏览 (自定义)

Object:Edit Data Shift+Ctrl+E 编辑数据(自定义)

Object:Standard Query Shift+Ctrl+S 标准查询(自定义)

Edit/Find Replace Ctrl+F

Edit/Find Next Ctrl+L

Edit/Find Previous Shift+Ctrl+L

Edit/Replace Next Ctrl+P

EDIT/Full Screen Ctrl+F11

Edit/Go to Line Ctrl+G

Edit/Next Tab Page Ctrl+H

Edit/Previous Tab Page Shift+Ctrl+H

Session/Execute F8

Session/Break Shift+Esc

Session/Commit F10

Session/Rollback Shift+F10

Debug/Toggle Breakpoint Ctrl+B

Debug/Start F9

Debug/Run Ctrl+R

Debug/Step Into Ctrl+N

Debug/Step Over Ctrl+O

Debug/Step Out Ctrl+T

Tools/Explain Plan F5

Tools/Code Assistant F6

Editor: Start of Document Ctrl+PgUp OR Ctrl+Home

Editor: End of Document Ctrl+PgDn OR Ctrl+End

Editor: Delete Line Ctrl+Y

Editor: Navigate Back Alt+Left

Editor: Navigate Forward Alt+Right

SQL Window: Previous SQL Ctrl+Up

SQL Window: Next SQL Ctrl+Down

1 PL/SQL Developer记住登陆密码

在使用PL/SQL Developer时,

为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码;

设置方法:

PL/SQL Developer->tools->Preferences->Oracle->Logon History,

在右边界面的"Definition"中,"Store history"是默认勾选的,

再勾选上"Store with password",即可

上述方法若不好用,使用下面的方式:

在上面所说的界面中的"Fixed Users"中,

添加需要直接选择后就可登录的用户名/密码@ORACLE_SID,

如:

cbsdb/cbsdb@cbsdb

重新登录的时候,从Oracle Logon的登录界面的Username后面的按钮处,

选择需要登录的用户即可。

2 执行单条SQL语句(SQL Window中根据光标位置自动选择语句)

在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所

有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;

设置方法:PL/SQL Developer->tools->Preferences->SQL Window->Window types,

勾上"AutoSelect Statement" 即可。

注意,每条语句后面要加分号。

3 格式化SQL语句

在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句太长或太乱,

希望能用比较通用的写法格式话一下,这样看起来会好看些,也好分析;

使用方法:

选中需要格式化的SQL语句,然后点击工具栏的PL/SQL beautifier按钮即可

4 查看执行计划

在使用PL/SQL Developer的SQL Window时,有时候输入的SQL语句执行的效率,分析下表结构,

如何可以提高查询的效率,可以通过查看Oracle提供的执行计划;

使用方法:

选中需要分析的SQL语句,然后点击工具栏的Explain plan按钮(即执行计划),

或者直接按F5即可。

5 调试存储过程

在使用PL/SQL Developer *** 作Oracle时,有时候调用某些存储过程,或者调试存储过程;

调用存储过程的方法:

首先,在PL/SQL Developer左边的Browser中选择Procedures,

查找需要调用的存储过程;然后,选中调试的存储过程,点击右键,

选择Test,在d出来的Test script窗口中,

对于定义为in类型的参数,需要给该参数的Value输入值;

最后点击上面的条数按钮:Start debugger或者按F9;

最后点击:RUN或者Ctrl+R。

(具体要调式一个存储过程,请参照 *** 作手册,这个大概说明下应用)。

6 oralce精简客户端的使用

要想PL/SQL连接oracle数据库,除了PL/SQL Developer 之外还需要Oracle客户端,

有一个更方便的方法就是使用Oracle精简客户端,很多地方可以下载,文件很小,耗资源也少。

安装完成后修改安装目录下的\Oracle\ora90\network\ADMIN\tnsnamesora文件:

格式如下:

DATABASE_NAME =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127001)(PORT = 1521))

)

(CONNECT_DATA =

#(SERVICE_NAME = dealer)

(SID = SID_NAME)

#(SERVER = DEDICATED)

)

)

7 关键字自动大写:

了解一点编程的常识的人都知道,编码风格很重要。

在阅读代码方面,保持一致的编码风格,阅读起来比较容易;

在执行效率方面,保持一致的编码风格,更有可能被放到共享SQL区中,

这样就提供了执行的效率。

另外,信息系统的核心是数据库,系统出问题时最先要查的就是SQL语句,

怎样在浩瀚的日志中快速找到那条SQL语句是件比较痛苦的事情。

SQL语句全部大写并不能彻底解决这一问题,

但在一堆代码中间找一行全部大写的字符相对容易些,你的眼睛会感谢你。

设置也很简单:

Tools->Preferences->Editor,将Keyword case选择Uppercase。

我一般是让关键字大写,其他比如表名,字段名等都是小写。

大家都应该养成一种自己的编码习惯,并保持下去。

8 右键菜单

在PL/SQL Developer(下面简称PLD)中的每一个文本编辑窗口,

如SQL Window,Command Window和Porgram Window,

右键点击某个对象名称,会d出一个包含 *** 作对象命令的菜单,我们这里称之为右键菜单。

对象类型可以是表,视图,同义词,存储过程和函数等。

根据对象类型的不同,d出的菜单也有区别。

表和视图有View, Edit, Rename, Drop, Query data 和Edit data等功能。

View和Edit分别是查看和修改表的结构信息,如字段,主键,索引和约束等。

Query data相当于新打开一个窗口,并执行select from 表。

Edit data相当于新打开一个窗口,并执行select from 表 for update。

存储过程和函数有Test功能,选中后可以进入调试状态。

有时由于PLD识别错误,右键点击对象并不能出来正确的菜单,

可以在对象所在的DDL或DML语句的前面,加上分号,这样PLD就能正确的判断出对象的类型

9 Select for Update

有时我们需要把一些数据导入数据库中,如果用UE拼Insert语句,会比较麻烦,而且 *** 作性不强。

PLD的SQL Window可以查询,新增,修改和删除表的内容。

查询自不必说,而新增,删除和修改,只需在select语句后加入for update,

对表进行行级锁定,然后点击窗口的锁型图标,即可进入编辑状态。

下面介绍一下如何从Excel中提取文本插入到数据库中,

我们的Excel文件中有三列,在数据库中建立临时表:

CREATE TABLE t1(

cino varchar2(100),

contno varchar2(100),

loanno varchar2(100)

)

然后在SQL Window中输入select t1 for update,并点击锁型鼠标,进入编辑状态,

用鼠标点击第一行的输入窗口,这时PLD会死锁几秒钟,

然后可以见到光标在第一行的输入框中闪动,

用鼠标把CINO, CONTNO, LOANNO选中,进入Excel中,把需要插入数据库的内容选中,

然后切换到PLD,按Ctrl + V,点击√,然后再点击Commit按钮,

则数据提交到表t1中,执行select from t1可以看到内容

10 PL/SQL Beautifier(PL/SQL 美化器)

PLD 6以上版本有对DML代码格式化的功能。

在SQL Window或Program Window中选中部分代码(如果不选则对整个窗口的代码 *** 作),

在菜单中选Edit -> PL/SQL Beautifier,得到格式化的代码。

对于非法的DML语句或DDL语句,PLD将会在下方状态栏提示:

PL/SQL Beautifier could not parse text。

在缺省的状态下,PLD会把DML语句的每一个字段都排在单独的一行,这样不方便查看。

在菜单中选Edit à PL/SQL Beautifier Options,进入Preferences窗口,

选择Edit,进入配置文件编辑界面,在标签栏选DML,

在窗口中部的Select, Insert和Update组框中把Fit选中,然后点击Save,

把配置文件保存到PLD的安装目录下,点击Close关闭。

在Rules file中输入配置文件所在位置,点击OK,完成配置文件切换。

这时再对代码进行格式化,就可以使每一个字段尽可能的在一行上了。

11 TNS Names

菜单Help->Support Info->TNS Names,可以查看Oracle的tnsnamesora。

12 Copy to Excel

在SQL Window中执行Select语句,在结果出来以后,右键点击下面的数据区,

选择Copy to Excel,可以把数据区的记录原样拷贝到Excel中。

但有两点需要注意:

(1) field中不能以=开始,否则Excel会误认为是函数;

(2) 数字不要超过17位,否则后面的位数将会置为0,

但可以通过在数字前加'来使Excel认为该field是文本,

同时对于数据库中Numbe类型的字段,最好用to_char输出,不然可能会显示不正常;

13 保持上次打开的SQL脚本

重新进入PL/SQL Developer时,Window List能打开上次退出时的文档:

(1) 将菜单Tools->Window list选项勾上;

(2) Tools->Perferences->User Interface->Options的右边,

将"Autosave desktop"勾选

(3) 退出PL/SQL Developer重新进入

14 快速找到已知表名的表或其他对象:

在Tools菜单中,勾选上Object Browser,将对象浏览器打开,

双击对象浏览器中的某个对象所处的文件夹,

比如表都是在Tables文件夹中,

然后以尽快的速度输入表名,即可找到以你输入的几个字母开头的对象了

15 快速关闭打开于Windows List中的文档窗口:

按住Shift键,左键点击需要关闭的文档窗口

16 PL/SQL DEVELOPER中的专用复制(Special Copy)

如果你正在用 PL/SQL Developer 写 SQL 和 PL/SQL 代码,

随后你又要在其它工具里使用代码,例如象 3GL 这样的程序设计语言,

那么你可能需要把这些代码转换为稍微不同的格式。

让我们假设你已经在 PL/SQL Developer 里写了并测试了这样一个SQL 语句:

select deptno, sum(sal) mgr_sal

from emp

where job = 'MANAGER'

group by deptno

order by mgr_sal desc

例如,如果你要在Borland Delphi 里使用这个语句,你可能需要象这样的格式:

SQL := 'select deptno, sum(sal) mgr_sal from emp' + #13#10 +

'where job = ''MANAGER''' + #13#10 +

'group by deptno' + #13#10 +

'order by mgr_sal desc';

为了这个目的,在PL/SQL DEVELOPER中选中已写好的SQL语句,鼠标右键,

在d出的菜单中找到 Special Copy。这个功能有一个子菜单,它显示了所有被定义的专用复制格式。

在选择了格式之后,被转换的代码就被储存在剪贴板上了,

这样你就可以粘贴它到相应工具的编辑器里了。

专用复制格式被定义在 PL/SQL Developer 安装目录下的 SpecialCopy 子目录里。

你可以改变预先确定的复制格式或者添加新的复制格式。

仅仅简单地添加一个带有 copy 扩展名的文本文件就可以了,

它包含了一个针对 PL/SQL 代码第一行的变量

(<line_1>)、一个针对 PL/SQL 代码最后一行的变量(<line_N>)

和一个针对所有其它行的变量(<line_>)。下面是一个针对 Borland Delphi 的例子:

;PL/SQL Developer SpecialCopy definition for Borland Delphi

;<line_1> for first line

;<line_> for all other lines

;<line_N> for last line

;

SQL := '<line_1>' + #13#10 +

'<line_>' + #13#10 +

'<line_n>';

第一行需要为指派到 SQL 的变量加上前言,接下来需要有一个 CR/LF 对。

最后一行不需要有CR/LF 对,但需要用分号来终止。所有其它行仅仅需要 CR/LF 接在后面。

如果 <line_1> 和 <line_n> 都与 <line_> 一样,你可以忽略它们。

在一些语言里,你需要对特定的字符使用换码序列。

例如,在 C++ 里,你要对 tab字符(ASCII 码为 9)使用 \t 。

要定义这些换码序列,请使用 #define 关键词:

#define char(9) = \t

#define \ = \\

String("<line_1>\n") +

String("<line_>\n") +

String("<line_n>");

你还可以使用 "#define compress"来指出你要从结果里移除所有多余的空字符(空格、制表符和换行)。

注意,copy 文件的名字将被包括在菜单里,所以你应该使用描述性的文件名。

17 在PL/SQL DEVELOPER中复制行记录的简便方法

(1) 单击要拷贝的行记录左边的黑色小三角,该行被选中,右键复制。

(2) 粘贴至记事本里,然后复制刚才粘贴的内容。(该步骤不知何故不能缺)

(3) 单击新记录左边的黑色小三角,右键粘贴即可。

18 快捷键定义的位置:

Tools->Preferences->User Interface->Key configuration

选中需要定义的Item,然后按一个快捷键组合即可,

如果所按的快捷键已有定义,会有提示,这时候Cancel,另外选择快捷键组合即可;

通常情况下,打开PLSQL Developer后,最经常干的事就是打开SQL Window和Command Window,

就给这两个 *** 作定义了快捷键, ALT+S 和 ALT + C,这样拿鼠标点三下的事情只需要按一下键。

设置方法:

菜单Tools -> Preferences -> Key Configuration

注意:

如果设置了快捷键不起作用,

回到Tools -> Preferences -> Key Configuration界面,

点击最上方的"Default Administrator"右边的""按钮,

在d出的"Preference Set"界面中,对"Personal Preferences"

以及下面的"Definition"->"Description"进行一下设置

19 在窗口标题栏内显示文件的完全路径

Tools->Preferences->User Interface->Options

勾选"Show complete file path in windows titles"

20 Object Brower中自定义Object的顺序以及登录后默认自动选中My Objects

默认情况下,PL/SQL Developer登录后,Brower里会选择All objects,

如果你登录的用户是dba,要展开tables目录,正常情况都需要Wait几秒钟,

而选择My Objects后响应速率则是以毫秒计算的。

设置方法:

Tools菜单 -> Object Brower Filters,会打开Define Browser Filters界面,

选中"My Objects",并勾选 "Default" 设为默认即可。

Tools菜单 -> Object Brower Folders,会打开Define Browser Folders界面,

这里可以把经常用到的几个目录(比如:Tables Views Seq Functions Procedures)

移得靠上一点,并加上颜色区分,这样你的平均寻表时间会大大缩短,试试看。

21 双击即显示表数据

鼠标双击表或者视图时的默认响应实在让我感到失望,因为我最关心的是表结构和数据,

但是双击后这两件事情都没有发生,也许默认响应是高手们需要的,

但对我来说查看数据和表结构是最主要的,其他的我不关心。

不过好的是这是可以设置的,你可以给鼠标双击和拖放绑定需要的事件,

比如:双击编辑数据,拖放显示表结构,Yeah!

设置方法:

菜单Tools -> Preferences -> Object Browser,

在右侧,为不同的Object Type绑定双击和拖放 *** 作。

22 去掉注释的斜体样式:

菜单Tools -> Preferences -> User Interface->Editor

在右边的界面中"Syntax Highlighting"下,去掉"Comment"右边的"Italic"的勾选

在PLSQL安装目录:

如C:\Program Files\PLSQL Developer\Preferences\登录windows用户文件夹

找到userprefs文件采用记事本方式打开

搜索一下[LogonHistory]

删除下面类似字符串的内容就可以了清除登录记录

字符串格式类似下面形式:

2142483249544756460649843666463650144688466650444286400840344012

plsql删除⼤量数据_oracle快速删除⼤批量数据⽅法(全部删除,条件删除,删除⼤量重。。。

全部删除

如果是删除某个表的所有数据,并且不需要回滚,使⽤ TRUNCATE 就ok了。

SQL> truncate table table_name;

条件删除

如果删除数据有条件,如 delete from tablename where col1 = 'lucy';这时除了加索引外, 你可以删除时加NO LOGGING选项,不写⽇志加快删除速度

引⽤某⼈的⼀句话“⼏千万条记录的表都不分区,明显有问题嘛。Oracle的技术⽀持⼯程师建议,2,000,000条以上记录的表,应该考虑分区,你完全可以按照时间为维度来建表,每个⽉的数据存放在⼀个分区表中,以后要删除⼀个⽉的数据,直接truncate table即可,不记录⽇志,速度很快。”

删除⼤量重复记录

《转》做项⽬的时候,⼀位同事导数据的时候,不⼩⼼把⼀个表中的数据全都搞重了,也就是说,这个表⾥所有的记录都有⼀条重复的。这个表的数据是千万级的,⽽且是⽣产系统。也就是说,不能把所有的记录都删除,⽽且必须快速的把重复记录删掉。

对此,总结了⼀下删除重复记录的⽅法,以及每种⽅法的优缺点。

为了陈诉⽅便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col2上加了索引。

1、通过创建临时表

可以把数据先导⼊到⼀个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:

creat table tbl_tmp (select distinct from tbl);

truncate table tbl; //清空表记录i

nsert into tbl select from tbl_tmp;//将临时表中的数据插回来。

这种⽅法可以实现需求,但是很明显,对于⼀个千万级记录的表,这种⽅法很慢,在⽣产系统中,这会给系统带来很⼤的开销,不可⾏。

2、利⽤rowid

在oracle中,每⼀条记录都有⼀个rowid,rowid在整个数据库中是唯⼀的,rowid确定了每条记录是oracle中的哪⼀个数据⽂件、块、⾏上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同。SQL语句如下:

delete from tbl where rowid in (select arowid

from tbl a, tbl b

where arowid>browid and acol1=bcol1 and acol2 = bcol2)

如果已经知道每条记录只有⼀条重复的,这个sql语句适⽤。但是如果每条记录的重复记录有N条,这个N是未知的,就要考虑适⽤下⾯这种⽅法了。

3、利⽤max或min函数

这⾥也要使⽤rowid,与上⾯不同的是结合max或min函数来实现。SQL语句如下

delete from tbl a

where rowid not in (

select max(browid)

from tbl b

where acol1=bcol1 and acol2 = bcol2); //这⾥max使⽤min也可以

或者⽤下⾯的语句

delete from tbl awhere rowid

select max(browid)

from tbl b

where acol1=bcol1 and acol2 = bcol2); //这⾥如果把max换成min的话,前⾯的where⼦句中需要把""

跟上⾯的⽅法思路基本是⼀样的,不过使⽤了group by,减少了显性的⽐较条件,提⾼效率。SQL语句如下:

deletefrom tbl where rowid not in (

select max(rowid)

from tbl tgroup by tcol1, tcol2);

delete from tbl where (col1, col2) in (

select col1,col2

from tblgroup bycol1,col2havingcount() >1) and rowidnotin(selectnin(rowid)fromtblgroup bycol1,

col2havingcount() >1) ----

还有⼀种⽅法,对于表中有重复记录的记录⽐较少的,并且有索引的情况,⽐较适⽤。假定col1,col2上有索引,并且tbl表中有重复记录的记录⽐较少,SQL语句如下4、利⽤group by,提⾼效率

5

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

plsql删除大量数据_oracle快速删除大批量数据方法(全部删除,条件删除,删除大量重。。。

plsql删除⼤量数据_oracle快速删除⼤批量数据⽅法(全部删除,条件删除,删除⼤量重。。。

全部删除

如果是删除某个表的所有数据,并且不需要回滚,使⽤ TRUNCATE 就ok了。

SQL> truncate table table_name;

条件删除

如果删除数据有条件,如 delete from tablename where col1 = 'lucy';这时除了加索引外, 你可以删除时加NO LOGGING选项,不写⽇志加快删除速度

第 1 页

引⽤某⼈的⼀句话“⼏千万条记录的表都不分区,明显有问题嘛。Oracle的技术⽀持⼯程师建议,2,000,000条以上记录的表,应该考虑分区,你完全可以按照时间为维度来建表,每个⽉的数据存放在⼀个分区表中,以后要删除⼀个⽉的数据,直接truncate table即可,不记录⽇志,速度很快。”

删除⼤量重复记录

《转》做项⽬的时候,⼀位同事导数据的时候,不⼩⼼把⼀个表中的数据全都搞重了,也就是说,这个表⾥所有的记录都有⼀条重复的。这个表的数据是千万级的,⽽且是⽣产系统。也就是说,不能把所有的记录都删除,⽽且必须快速的把重复记录删掉。

第 2 页

对此,总结了⼀下删除重复记录的⽅法,以及每种⽅法的优缺点。

为了陈诉⽅便,假设表名为Tbl,表中有三列col1,col2,col3,其中col1,col2是主键,并且,col1,col2上加了索引。

1、通过创建临时表

可以把数据先导⼊到⼀个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:

creat table tbl_tmp (select distinct from tbl);

truncate table tbl; //清空表记录i

第 3 页

nsert into tbl select from tbl_tmp;//将临时表中的数据插回来。

这种⽅法可以实现需求,但是很明显,对于⼀个千万级记录的表,这种⽅法很慢,在⽣产系统中,这会给系统带来很⼤的开销,不可⾏。

2、利⽤rowid

在oracle中,每⼀条记录都有⼀个rowid,rowid在整个数据库中是唯⼀的,rowid确定了每条记录是oracle中的哪⼀个数据⽂件、块、⾏上。在重复的记录中,可能所有列的内容都相同,但rowid不会相同。SQL语句如下:

第 4 页

delete from tbl where rowid in (select arowid

from tbl a, tbl b

where arowid>browid and acol1=bcol1 and acol2 = bcol2)

如果已经知道每条记录只有⼀条重复的,这个sql语句适⽤。但是如果每条记录的重复记录有N条,这个N是未知的,就要考虑适⽤下⾯这种⽅法了。

3、利⽤max或min函数

这⾥也要使⽤rowid,与上⾯不同的是结合max或min函数来实现。SQL语句如下

第 5 页

delete from tbl a

where rowid not in (

select max(browid)

from tbl b

where acol1=bcol1 and acol2 = bcol2); //这⾥max使⽤min也可以

或者⽤下⾯的语句

delete from tbl awhere rowid

select max(browid)

from tbl b

第 6 页

where acol1=bcol1 and acol2 = bcol2); //这⾥如果把max换成min的话,前⾯的where⼦句中需要把""

跟上⾯的⽅法思路基本是⼀样的,不过使⽤了group by,减少了显性的⽐较条件,提⾼效率。SQL语句如下:

deletefrom tbl where rowid not in (

select max(rowid)

from tbl tgroup by tcol1, tcol2);

delete from tbl where (col1, col2) in (

select col1,col2

第 7 页

from tblgroup bycol1,col2havingcount() >1) and rowidnotin(selectnin(rowid)fromtblgroup bycol1,

col2havingcount() >1) ----

还有⼀种⽅法,对于表中有重复记录的记录⽐较少的,并且有索引的情况,⽐较适⽤。假定col1,col2上有索引,并且tbl表中有重复记录的记录⽐较少,SQL语句如下4、利⽤group by,提⾼效率

彻底卸载plsql的具体步骤如下:

我们需要准备的材料分别是:电脑、plsql。

1、首先我们打开电脑开始菜单栏中的“控制面板”。

2、然后我们在d出来的窗口中点击打开“程序和功能”。

3、然后我们在d出来的窗口中找到plsql,右键单击选择“卸载”即可。

删除表中多余的重复记录(多个字段),只留有rowid最小的记录

假设字段为a,b,c

delete from 表 aa where (aaa,aab,aac) in (select a,b,c from 表 group by a,b,c having count() > 1) and rowid not in (select min(rowid) from 表 group by a,b,c having count()>1)

以上就是关于plsql developer 怎样回滚删除视图 *** 作全部的内容,包括:plsql developer 怎样回滚删除视图 *** 作、PLSQL数据库登录界面 已登录过的库的信息 在那个文件中删除、pplsql删除用户删不了z怎么批量删进程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9452480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存