重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能).
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、网站制作、绩溪网络推广、微信小程序开发、绩溪网络营销、绩溪企业策划、绩溪品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供绩溪建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。
如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。
如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键):
merge into xxx aa
using (select pk_col from xxx) bb
on (aa.pk_col=bb.pk_col)
when matched then
update set aa.datatype=66 where aa.datatype is null;
用rownum就可以实现的
select * from table where rownum=1 ;
rownum是一个序列,是oracle数据库从数据文件或缓冲区中读取数据的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。
oracle记录中选择出第一条记录的方法。
如下参考:
1.创建测试表
Createtabletest_order(idnumber,valuevarchar2(50));
2.插入测试数据
插入test_order值(3,'v3');
插入test_order值(2,'v2');
插入test_order值(1,'v1');
插入test_order值(5,'v5');
插入test_order值(4,'v4');
提交;
3.检查查询表中的全部数据,可以发现数据没有排序,选择t。*,rowidfromtest_ordert;
4.写SQL,数据只要第一个记录(不是rownum=1)select*from(selectt)。*,row_number()/(orderbyid)rnfromtest_ordert)t,其中rn=1;