oracle sqlldr 出现达到提交点 - 逻辑记录计数 86

wunan210 2010-01-09 11:18:19
出现达到提交点 - 逻辑记录计数 86 就跳出来了,内容如下
C:\Documents and Settings\Administrator>sqlldr wjn/111111@orcl

control = D:\testdate\t_user.ctl

SQL*Loader: Release 10.2.0.1.0 - Production on 星期六 1月 9 11:03:19 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

达到提交点 - 逻辑记录计数 86

C:\Documents and Settings\Administrator>


我的t_user.ctl文件内容如下
load data          
infile 'D:\testdate\t_user_dat.csv'    
into table t_user 
replace   
--fields terminated by ',' 
--Optionally enclosed by ',' 
(id char terminated by ',',
username char terminated by ',',
password char terminated by ',',
email char terminated by ',',
nickName char terminated by ',',
truename char terminated by ',',
position char terminated by ',',
phone char terminated by ',',
mobile char terminated by ',',
fax char terminated by ',',
state char terminated by ',',
factoryName char terminated by ',',
factoryFullName char terminated by ',',
hangYe char terminated by ',',
groupId char terminated by ',',
createTime date terminated by ',',
userId char terminated by whitespace)


我的数据文件有362条,输出的BAD文件内容跟数据文件一样不同的是只有51行.随意发两行数据文件内容上来
1,Babydaily_bbs,96e79218965eb72c92a549dd5a330112,123,1,1,1,1,1,1,2,Babydaily_bbs,上海贝博氏儿童用品有限公司,hangYe,NULL,2009-09-09 00:00:00,NULL
105,Humidi_rsm,96e79218965eb72c92a549dd5a330112,123,1,1,1,1,1,1,2,Humidi_rsm,瑞思买(北京)信息技术有限公司,hangYe,NULL,2009-09-09 00:00:00,NULL

请问是怎么回事啊? 我刚学用sqlldr . 新手中的新手,还有,ctl文件怎么制定数字类型? 我用int和number都出错?
求高手解答, 在线等
...全文
2433 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicai00 2010-12-04
  • 打赏
  • 举报
回复


恭喜 我 个 问题我也在找原因 ~ 是刚刚预到地 ,

oralce 导出 的csv 问件就可以 ,sqlsql2000 就出这种错误 !!!!

唉 看来是不是 人品问题!!!
ben_qiang 2010-12-03
  • 打赏
  • 举报
回复
我的也有这个问题,实际数据10000行,显示达到提交点64,我把第1000行数据剪切到第一行能导入,放在原位置导入不了,说明不是数据格式问题,还请高手指教!!!
Finder_Way 2010-01-12
  • 打赏
  • 举报
回复
数据格式有问题
Dave 2010-01-12
  • 打赏
  • 举报
回复


BAD文件内容跟数据文件一样不同的是只有51行.

记录 27: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配


-- BAD的内容就是没有插入数据的内容。 不能插入的原因可能是相应的列对不上号,或者字段的长度不够。






------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
wunan210 2010-01-09
  • 打赏
  • 举报
回复
补充一下LOG文件内容:

SQL*Loader: Release 10.2.0.1.0 - Production on 星期六 1月 9 11:45:11 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.

控制文件: D:\testdate\t_user.ctl
数据文件: D:\testdate\t_user_dat.csv
错误文件: D:\testdate\t_user_dat.bad
废弃文件: 未作指定

(可废弃所有记录)

要加载的数: ALL
要跳过的数: 0
允许的错误: 50
绑定数组: 64 行, 最大 256000 字节
继续: 未作指定
所用路径: 常规

表 T_USER,已加载从每个逻辑记录
插入选项对此表 REPLACE 生效

列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ID FIRST * , CHARACTER
USERNAME NEXT * , CHARACTER
PASSWORD NEXT * , CHARACTER
EMAIL NEXT * , CHARACTER
NICKNAME NEXT * , CHARACTER
TRUENAME NEXT * , CHARACTER
POSITION NEXT * , CHARACTER
PHONE NEXT * , CHARACTER
MOBILE NEXT * , CHARACTER
FAX NEXT * , CHARACTER
STATE NEXT * , CHARACTER
FACTORYNAME NEXT * , CHARACTER
FACTORYFULLNAME NEXT * , CHARACTER
HANGYE NEXT * , CHARACTER
GROUPID NEXT * , CHARACTER
CREATETIME NEXT * , DATE DD-MON-RR
USERID NEXT * WHT CHARACTER

ROWS 参数所用的值已从 64 更改为 58
记录 1: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 2: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 3: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 9: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 11: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 16: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 19: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 22: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 25: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 37: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 40: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 47: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 51: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 52: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 53: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 54: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 57: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 62: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 64: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 65: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 66: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 67: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 69: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 72: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 74: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 76: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 80: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 82: 被拒绝 - 表 T_USER 的列 USERID 出现错误。
在逻辑记录结束之前未找到列 (使用 TRAILING NULLCOLS)
记录 4: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 5: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 6: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 7: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 8: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 10: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 12: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 13: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 14: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 15: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 17: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 18: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 20: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 21: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 23: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 24: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 26: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 27: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 28: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 29: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 30: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 31: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配

记录 32: 被拒绝 - 表 T_USER 的列 CREATETIME 出现错误。
ORA-01861: 文字与格式字符串不匹配


超过最大错误数 - 以上统计信息反映部分运行结果。

表 T_USER:
0 行 加载成功。
由于数据错误, 51 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。


为绑定数组分配的空间: 254388 字节 (58 行)
读取 缓冲区字节数: 1048576

跳过的逻辑记录总数: 0
读取的逻辑记录总数: 86
拒绝的逻辑记录总数: 51
废弃的逻辑记录总数: 0

从 星期六 1月 09 11:45:11 2010 开始运行
在 星期六 1月 09 11:45:11 2010 处运行结束

经过时间为: 00: 00: 00.10
CPU 时间为: 00: 00: 00.05
fuyou001 2010-01-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 crazylaa 的回复:]
你的数据有问题,与表的字段类型不匹配。找到没有导入的数据,看看是不是格式不符合要求
[/Quote]
我之前就遇过类似的问题,是格式没跟表对上
crazylaa 2010-01-09
  • 打赏
  • 举报
回复
你的数据有问题,与表的字段类型不匹配。找到没有导入的数据,看看是不是格式不符合要求
使用ODU恢复Truncate表ODUmanual ODU3月 15th, 2009 意外Truncate表的事情时有发生,ODU提供了方便的恢复Truncate表的功能。被Truncate的表,只要原来的空间没有被重用(即数据被覆盖),则数据都是可以恢复的。 如果发现一个表被意外地Truncate,而需要马上恢复。首先要做的就是关闭数据库,或者OFFLINE那个表所在的表空间,或者关闭所有应用。目的只有一个,确保空间不会被重用,数据不会被覆盖。 下面举例说明如何用ODU恢复被Truncate掉的表。 1. 建立测试的表DB_JJ_INFO_TEMP。 SQL> connect pdata/test 已连接。 SQL> create table DB_JJ_INFO_TEMP as select * from dba_objects; SQL> truncate table DB_JJ_INFO_TEMP; 2. 我们OFFLINE掉DB_JJ_INFO_TEMP表的表空间(实际上在实际的系统中,如果有比较多的活动,则表空间不容易被OFFLINE下来)。然后做一个Checkpoint,让ODU能够读到最新的数据字典数据。 SQL> select tablespace_name from user_tables where table_name='DB_JJ_INFO_TEMP'; TABLESPACE_NAME ------------------------------ PDATA SQL> alter tablespace PDATA offline; 表空间已更改。 SQL> alter system checkpoint; 系统已更改。 22=================================完善字典文件格式如下 control.txt文件中的数据格式为: 表空间号 文件号 相对文件号 文件名 块大小 是否大文件表空间 每列之间用空白分隔,可以只需要前四列,即块大小和是否大文件表空间可省略,块大小省略时,数据文件的默认块大小为config.txt中block_size的大小。下面是一个示例的数据: #ts #fno #rfno filename block_size bigfile 0 1 1 D:\ORACLE\ORADATA\XJ\SYSTEM01.DBF 4096 1 2 2 D:\ORACLE\ORADATA\XJ\UNDOTBS01.DBF 4096 3 3 3 D:\ORACLE\ORADATA\XJ\DRSYS01.DBF 4096 4 4 4 D:\ORACLE\ORADATA\XJ\EXAMPLE01.DBF 4096 5 5 5 D:\ORACLE\ORADATA\XJ\INDX01.DBF 4096 6 6 6 D:\ORACLE\ORADATA\XJ\ODM01.DBF 4096 7 7 7 D:\ORACLE\ORADATA\XJ\TOOLS03.DBF 4096 7 8 8 D:\ORACLE\ORADATA\XJ\TOOLS02.DBF 4096 9 9 9 D:\ORACLE\ORADATA\XJ\XDB01.DBF 4096 11 10 10 D:\ORACLE\ORADATA\XJ\TEST01.DBF 2048 14 11 11 D:\ORACLE\ORADATA\XJ\K16.DBF 16384 如果数据文件头是完好的,则ODU会自动从文件头里面获取表空间号,文件号,相对文件号,文件块大小等。表空间号,文件号和相对文件号可以写为0。 注意:ODU将检查control.txt文件中的第一个数据文件是否为SYSTEM表空间文件,所以要将SYSTEM表空间的第1个文件放在control.txt文件中的第一行。否则将不能自动获得数据字典数据。 3. 运行ODU,并unload数据字典。 ODU> unload dict get_bootstrap_dba: compat header size:12 CLUSTER C_USER# file_no: 1 block_no: 177 TABLE OBJ$ file_no: 1 block_no: 241 CLUSTER C_OBJ# file_no: 1 block_no: 49 CLUSTER C_OBJ# file_no: 1 block_no: 49 found IND$’s obj# 19 found IND$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:3 found TABPART$’s obj# 230 found TABPART$’s dataobj#:230,ts#:0,file#:1,block#:3313,tab#:0 found INDPART$’s obj# 234 found INDPART$’s dataobj#:234,ts#:0,file#:1,block#:3377,tab#:0 found TABSUBPART$’s obj# 240 found TABSUBPART$’s dataobj#:240,ts#:0,file#:1,block#:3473,tab#:0 found INDSUBPART$’s obj# 245 found INDSUBPART$’s dataobj#:245,ts#:0,file#:1,block#:3553,tab#:0 found IND$’s obj# 19 found IND$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:3 found LOB$’s obj# 156 found LOB$’s dataobj#:2,ts#:0,file#:1,block#:49,tab#:6 found LOBFRAG$’s obj# 258 found LOBFRAG$’s dataobj#:258,ts#:0,file#:1,block#:3761,tab#:0 4. 获取PDATA用户下的DB_JJ_INFO_TEMP表,也就是我们要恢复的表的信息: ODU> desc PDATA.DB_JJ_INFO_TEMP Object ID:33547 Storage(Obj#=33547 DataObj#=33549 TS#=11 File#=10 Block#=1400 Cluster=0) NO. SEG INT Column Name Null? Type --- --- --- ------------------------------ --------- ------------------------------ 1 1 1 OWNER VARCHAR2(30) 2 2 2 OBJECT_NAME VARCHAR2(128) 3 3 3 SUBOBJECT_NAME VARCHAR2(30) 4 4 4 OBJECT_ID NUMBER 5 5 5 DATA_OBJECT_ID NUMBER 6 6 6 OBJECT_TYPE VARCHAR2(18) 7 7 7 CREATED DATE 8 8 8 LAST_DDL_TIME DATE 9 9 9 TIMESTAMP VARCHAR2(19) 10 10 10 STATUS VARCHAR2(7) 11 11 11 TEMPORARY VARCHAR2(1) 12 12 12 GENERATED VARCHAR2(1) 13 13 13 SECONDARY VARCHAR2(1) 从上面的输出中,我们可以看到,PDATA.DB_JJ_INFO_TEMP表所在的表空间号为11,数据段头部为10号文件的1400号块。 5. 接下来用ODU扫描表空间的extent: ODU> scan extent tablespace 11 scanning extent… scanning extent finished. 6. 我们使用ODU来确定DB_JJ_INFO_TEMP表原来的data object id。一般来说,数据段的数据块,一般是在段头后面相邻的块中。但是我们可以从段头来确认: ODU> dump datafile 10 block 1400 Block Header: block type=0×23 (ASSM segment header block) block format=0×02 (oracle 8 or 9) block rdba=0×02800578 (file#=10, block#=1400) scn=0×0000.00286f2d, seq=4, tail=0×6f2d2304 block checksum value=0×0=0, flag=0 Data Segment Header: Extent Control Header ------------------------------------------------------------- Extent Header:: extents: 1 blocks: 5 last map: 0×00000000 #maps: 0 offset: 668 Highwater:: 0×02800579 (rfile#=10,block#=1401) ext#: 0 blk#: 3 ext size:5 #blocks in seg. hdr’s freelists: 0 #blocks below: 0 mapblk: 0×00000000 offset: 0 -------------------------------------------------------- Low HighWater Mark : Highwater:: 0×02800579 ext#: 0 blk#: 3 ext size: 5 #blocks in seg. hdr’s freelists: 0 #blocks below: 0 mapblk 0×00000000 offset: 0 Level 1 BMB for High HWM block: 0×02800576 Level 1 BMB for Low HWM block: 0×02800576 -------------------------------------------------------- Segment Type: 1 nl2: 1 blksz: 2048 fbsz: 0 L2 Array start offset: 0×00000434 First Level 3 BMB: 0×00000000 L2 Hint for inserts: 0×02800577 Last Level 1 BMB: 0×02800576 Last Level 1I BMB: 0×02800577 Last Level 1II BMB: 0×00000000 Map Header:: next 0×00000000 #extents: 1 obj#: 33549 flag: 0×220000000 Extent Map ------------------------------------------------------------- 0×02800576 length: 5 Auxillary Map ------------------------------------------------------------- Extent 0 : L1 dba: 0×02800576 Data dba: 0×02800579 ------------------------------------------------------------- Second Level Bitmap block DBAs ------------------------------------------------------------- DBA 1: 0×02800577 从上面的输出中的“Extent 0 : L1 dba: 0×02800576 Data dba: 0×02800579”可以看到,段的第1个数据块的RDBA为0×02800579,也就是10号文件的1401块。 我们dump第10号文件的1401块头,来得到表DB_JJ_INFO_TEMP原来的data object id: ODU> dump datafile 10 block 1401 header Block Header: block type=0×06 (table/index/cluster segment data block) block format=0×02 (oracle 8 or 9) block rdba=0×02800579 (file#=10, block#=1401) scn=0×0000.00285f2b, seq=2, tail=0×5f2b0602 block checksum value=0×0=0, flag=0 Data Block Header Dump: Object id on Block? Y seg/obj: 0×830b=33547 csc: 0×00.285f21 itc: 3 flg: E typ: 1 (data) brn: 0 bdba: 0×2800576 ver: 0×01 Itl Xid Uba Flag Lck Scn/Fsc 0×01 0xffff.000.00000000 0×00000000.0000.00 C--- 0 scn 0×0000.00285f21 0×02 0×0000.000.00000000 0×00000000.0000.00 ---- 0 fsc 0×0000.00000000 0×03 0×0000.000.00000000 0×00000000.0000.00 ---- 0 fsc 0×0000.00000000 Data Block Dump: ================ flag=0×0 -------- ntab=1 nrow=16 frre=-1 fsbo=0×32 ffeo=0×145 avsp=0×113 tosp=0×113 可以看到,DB_JJ_INFO_TEMP表原来的data object id就是33547。 7. 使用ODU来unload数据: ODU> unload table PDATA.DB_JJ_INFO_TEMP object 33547 Unloading table: DB_JJ_INFO_TEMP,object ID: 33547 Unloading segment,storage(Obj#=33547 DataObj#=33547 TS#=11 File#=10 Block#=1400 Cluster=0) 8. 使用sqlplus将PDATA表空间ONLINE: SQL> alter tablespace test online; 表空间已更改。 9. 使用sqlldr导入我们恢复的数据: E:\ODU\data>sqlldr test/test control=TEST_T1.ctl SQL*Loader: Release 9.2.0.8.0 - Production on 星期日 3月 15 15:13:56 2009 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 达到提交逻辑记录计数6502 达到提交逻辑记录计数13004 达到提交逻辑记录计数19506 达到提交逻辑记录计数26008 达到提交逻辑记录计数30071 至此,恢复数据的步骤已经完成。我们来对比一下数据,看看数据是否和被Truncate前的数据完全一样: SQL> select * from t2 minus select * from DB_JJ_INFO_TEMP; 可以看到,数据已经完全恢复。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧