ALTER一个很大的表,如何查询已经ALTER了多少条记录? 目前正在ALTER一个oracle表的结构,大概有4亿多条数据。请问如何查看这个ALTER操作执行到了什么程度?或者已经处理了多少条记录呢?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 执行过程中是不可能查看的如果是存储过程,sql执行完后可以查看共处理了多少条 SQL%ROWCOUNT ALTER一个oracle表的结构...我理解错了你想看进度条。。? alter什么东西,列名?还是长度,还是别的? Alter部分表字段的长度。我的目的其实很简单,命令提交出去了,执行一晚上了,想看到什么程度了,要不心里不踏实。谢谢楼上两位关注! 表里存在数据,你还能alter表字段长度? Alter部分表字段的长度。应该很快的,你alter的是数据结构啊,不是很懂,呵呵 ALTER TABLE IPSA3.IPHDVAL MODIFY("HOSTALNE" VARCHAR2(4), "JRNCDE" VARCHAR2(5), "HDCDE" VARCHAR2(6), "ORIGCTY" VARCHAR2(5), "DESTCTY" VARCHAR2(5), "CARRIER" VARCHAR2(3), "DOTB" VARCHAR2(8), "DOTE" VARCHAR2(8), "PETD" VARCHAR2(8))执行没有问题,就是这个表数据量比较大。我真的只想看下进度就可以了。 这个要求好像很难实现,对于后台来说,只是一个SQL正在执行中,除此之外,很难查到进度 这个要求好像很难实现,对于后台来说,只是一个SQL正在执行中,除此之外,很难查到进度 你试着变通一下方法,不知道你这个表的字段多不多? 不多的话,创建一个新表,然后分批插入新表中,最后再drop旧表。 SQL> select count(*) from t_get_string; COUNT(*)---------- 10000002 Executed in 3.781 seconds SQL> alter table t_get_string modify sysname varchar2(300); Table altered Executed in 0.032 seconds SQL> alter 是ddl,只是改变表的字段长度定义,不实际去更改数据的. SQL> alter table t_get_string modify sysname varchar2(200); Table altered Executed in 2.875 seconds SQL> 额,不对.从数据看应该是这样的.如果是增加长度,则只是更改数据字典.如果是减少长度,需要检查现有数据是否符合长度定义,这时候会对数据进行检索. 使用联机表的重定义的功能,下面的例子是我把字段的长度扩大100倍。Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 Connected as SYSSQL> drop table scott.customer;Table droppedSQL> SQL> create table scott.customer 2 ( 3 name varchar2(20) primary key, 4 street varchar2(50) 5 );Table createdSQL> drop table scott.customer_online;Table droppedSQL> SQL> create table scott.customer_online 2 ( 3 name varchar2(200) primary key, 4 street varchar2(500) 5 );Table createdSQL> execute dbms_redefinition.can_redef_table('SCOTT','CUSTOMER');PL/SQL procedure successfully completedSQL> execute dbms_redefinition.start_redef_table('SCOTT','CUSTOMER','CUSTOMER_ONLINE');PL/SQL procedure successfully completedSQL> execute dbms_redefinition.FINISH_redef_table('SCOTT','CUSTOMER','CUSTOMER_ONLINE');PL/SQL procedure successfully completedSQL> drop table scott.customer_online;Table droppedSQL> desc scott.customer;Name Type Nullable Default Comments ------ ------------- -------- ------- -------- NAME VARCHAR2(200) STREET VARCHAR2(500) Y SQL> 你试着变通一下方法,不知道你这个表的字段多不多? 不多的话,创建一个新表,然后分批插入新表中,最后再drop旧表。数据量这么大,其实不建议删旧表的。可以将旧表改名转为备份表,用新表代替。个人建议。 这SQL文是干什么用的?其结果说明了什么? oracle触发器中:new."列名" 如何将列名改为一个动态变量 ,问题解决马上结贴 求sql语句 取各学科平均分排名前10的学生 从excel表中读日期并插入数据库 如果将DBA角色赋予某个用户? ****请高手帮忙,如何给物化视图中的字段加索引**** 如何整理oracle碎片?如何查看、扩展表空间? 请问update语句有返回值吗,怎么看update语句影响了多少条记录? oracle如何调用 C/C++ DLL中的输出函数?? oracle安装到C盘,ghost备份C盘,恢复系统非C盘表空间数据的恢复 求Oracle课程设计,不用太复杂的
如果是存储过程,sql执行完后可以查看共处理了多少条 SQL%ROWCOUNT
我理解错了你想看进度条。。?
Alter部分表字段的长度。我的目的其实很简单,命令提交出去了,执行一晚上了,想看到什么程度了,要不心里不踏实。谢谢楼上两位关注!
应该很快的,你alter的是数据结构啊,不是很懂,呵呵
ALTER TABLE IPSA3.IPHDVAL MODIFY("HOSTALNE" VARCHAR2(4), "JRNCDE" VARCHAR2(5), "HDCDE" VARCHAR2(6), "ORIGCTY" VARCHAR2(5), "DESTCTY" VARCHAR2(5), "CARRIER" VARCHAR2(3), "DOTB" VARCHAR2(8), "DOTE" VARCHAR2(8), "PETD" VARCHAR2(8))执行没有问题,就是这个表数据量比较大。我真的只想看下进度就可以了。
COUNT(*)
----------
10000002
Executed in 3.781 seconds
SQL> alter table t_get_string modify sysname varchar2(300);
Table altered
Executed in 0.032 seconds
SQL>
alter 是ddl,只是改变表的字段长度定义,不实际去更改数据的.
Table altered
Executed in 2.875 seconds
SQL>
额,不对.从数据看应该是这样的.
如果是增加长度,则只是更改数据字典.
如果是减少长度,需要检查现有数据是否符合长度定义,这时候会对数据进行检索.
Connected as SYS
SQL> drop table scott.customer;Table droppedSQL>
SQL> create table scott.customer
2 (
3 name varchar2(20) primary key,
4 street varchar2(50)
5 );Table createdSQL> drop table scott.customer_online;Table droppedSQL>
SQL> create table scott.customer_online
2 (
3 name varchar2(200) primary key,
4 street varchar2(500)
5 );Table createdSQL> execute dbms_redefinition.can_redef_table('SCOTT','CUSTOMER');PL/SQL procedure successfully completedSQL> execute dbms_redefinition.start_redef_table('SCOTT','CUSTOMER','CUSTOMER_ONLINE');PL/SQL procedure successfully completedSQL> execute dbms_redefinition.FINISH_redef_table('SCOTT','CUSTOMER','CUSTOMER_ONLINE');PL/SQL procedure successfully completedSQL> drop table scott.customer_online;Table droppedSQL> desc scott.customer;
Name Type Nullable Default Comments
------ ------------- -------- ------- --------
NAME VARCHAR2(200)
STREET VARCHAR2(500) Y SQL>