oracle数据库修改字段
㈠ oracle 修改字段名, 字段长度的操作是什么
1、创建表:
CREATE TABLE Student(
id varchar2(32) primary key,
name varchar2(8) not null,
age number
);
2、修改字段名:
alter table Student rename name to StuName;
3、修改数据类型:
alter table Student modify (id varchar2(64));
㈡ 如何批量修改oracle数据库中的某一个字段
--以下是我根据你的描述,做的测试,希望对你有帮助:
-- 新建一张表kongxianji:
CREATE TABLE kongxianji(a VARCHAR2(200));
-- 插入数据,然后提交:
INSERT INTO kongxianji (a) VALUES ('12345(6)789');
INSERT INTO kongxianji (a) VALUES ('12345(67)89');
INSERT INTO kongxianji (a) VALUES ('12345(678)9');
COMMIT;
SELECT * FROM kongxianji;
-- 把a中的括号去掉,然后提交,到这一步可以查看表中数据的变化情况:
UPDATE kongxianji SET a = replace(a,substr(a,instr(a,'('),(instr(a,')')-instr(a,'(')+1)),'');
COMMIT;
SELECT * FROM kongxianji;
㈢ 如何批量修改oracle数据库中某一个表中的某一列数据
最好的方法是批量修改,即每次修改5000条(一次修改不要超过一万条,否则影响性能). 虽然在11g中,我们也可以选择使用merge命令,但你的这种情况最好先修改一部分然后看看影响,毕竟在生产环境作这样的操作风险很大。如果是误操作,最好还是请DBA来恢复,虽然这样做会被挨骂,但总比错上加错,最后连挨骂的机会都没有要好得多。如果对这些修改真的有信心,而只是从性能考虑,那可以用下面的方法(pk_col 是表的主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键
1、构建临时表进行主键关联更新
需求:T1表有千万级别的数据量,需要更新这个表的字段a,b满足2个条件的记录。
做法:一般业务会将条件通过excel表格提供给开发,那么开发首先需要将这个excel表格的内容插入到临时表T2中,考虑到a,b都不是主键,那么需要将a,b转化成主键后再插入到T2表中,T2表中还可以保存更新前的数据,方便做数据回滚,T2表中有数据后,就可以执行下面脚本进行更新操作:
ps:c,d是需要更新的操作,e,f是条件。必须强调的是id必须是主键
㈣ oracle数据库中怎么修改一个字段的值
需要用update语句来进行修改。
update语句基本语法:
update 表名 set 字段='值' where 条件;
如test表中有如下数据:
现在要将ID=3的这条数据的NAME改成badkano,可用如下语句:
update test set NAME='badkano' where ID=3;
commit;
运行后的结果:
说明:
update语句执行后,必须commit来提交,否则只在当前session中有效。
㈤ oracle数据库只想修改表中的一个字段的部分数据
可以通过update方法进行批量修改,之后添加必要的条件,针对固定条件的数据进行批量修
改。
sql:update table_name SET age=age+1 where id like '%1111% ';
以上语句就是将id字段中包含1111的age字段,进行加1操作。
备注:如果是全部更新的话,去掉后面的where语句即可。
sql:update table_name SET age=25;
㈥ 批量修改oracle数据库中的某一个字段
可以通过update方法进行批量修改。
sql:update table_name SET age=25;
备注:也可以添加必要的条件,针对固定条件的数据进行批量修改。
sql:update table_name SET age=age+1 where name ='zhangsan ';
㈦ 怎样改变Oracle数据库的表中字段的类型
用alter语句进行修改。
语法:
alter
table
表名
modify
字段名
字段类型(字段长度);说明:如果是date等没有长度的类型,字段长度部分可以省略。
如:目前test表属性如下
要将name列的字段类型改为date类型,可用如下语句:
alter
table
test
mo...
㈧ oracle数据库,查询到的结果怎样修改
在把Oracle查询结果转换为SQL Server的时候要特别当心一些不容易注意到的问题。
我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X.
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM al
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’
数字取舍
Oracle数据库内有一个TRUNC函数,该函数返回m位十进制数的n位;如果省略m则n就是0位。m的值可以为负,表示截去小数点左边m位数字。
在SQL Server下可以用Round或者Floor.
以下是Oracle查询:
SELECT
TRUNC(15.79,1) "Truncate" FROM DUAL;
下面是同类查询的SQL Server版本:
SELECT ROUND(15.79, 0) rounded ,
ROUND(15.79, 0,1) truncated
SELECT FLOOR(ROUND(15.79, 0)),
FLOOR(ROUND(15.79, 0,1) )
在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL.这两种查询语言都对
ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何
对这些扩展进行转化以用在SQL Server环境下。
列的选择
用PLSQL执行数据查询的时候,FROM子句是必须的,这同SQL Server的要求是一样的。 SELECT语句必须选择针对的数据表。在Oracle数据库内有一种特殊的表DUAL.DUAL表由
Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2
(1)类型,有一行值X.
从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。
Oracle下的DUAL查询如下所示:
SELECT
‘x’ FROM al
而对等的SQL Server查询则是下面这个样子:
SELECT ‘x’
连接
Oracle用|| 符号作为连接符,而SQL Server的连接符是加号:+ .
Oracle查询如下所示:
Select ‘Name’ || ‘Last Name’
From tableName
对应的SQL Server查询如下所示:
Select ‘Name’ + ‘Last Name’