Sql 复制oracle表后编辑该表
我有一个包含两列的oracle表,它们都使用数字数据类型,当我输入任何以0开头的数字时,它将删除0。因此,解决方案是将数据类型更改为VARCHAR2。我有一个剧本Sql 复制oracle表后编辑该表,sql,oracle,Sql,Oracle,我有一个包含两列的oracle表,它们都使用数字数据类型,当我输入任何以0开头的数字时,它将删除0。因此,解决方案是将数据类型更改为VARCHAR2。我有一个剧本 使用VARCHAR2和主键创建临时表 复制旧表 扔掉旧桌子 将临时表重命名为旧表 然而,我面临一个问题。复制表时,以前被截断的任何数据都会保持这种状态,我是否可以在旧数据的开头添加一个0?。下面是我创建的脚本 /* create a new table named temp */ CREATE TABLE TEMP_TABLE (
- 使用VARCHAR2和主键创建临时表
- 复制旧表
- 扔掉旧桌子
- 将临时表重命名为旧表
/* create a new table named temp */
CREATE TABLE TEMP_TABLE
(
IMEISV_PREFIX VARCHAR2(8),
IMEI_FLAG NUMBER(2),
CONSTRAINT IMEIV_PK PRIMARY KEY (IMEISV_PREFIX)
);
/* copy everything from the old table to the new temp table */
INSERT INTO TEMP_TABLE
SELECT * FROM REF_IMEISV_PREFIX;
/* Delete the original table */
DROP TABLE REF_IMEISV_PREFIX;
/* Rename the temp table to the original table */
RENAME TEMP_TABLE TO REF_IMEISV_PREFIX;
不,没有。Oracle将数据保存到数据库时,会以当时的格式保存数据。所有其他信息将被删除。无法恢复历史数据 事实上,当您以前将数据存储到数据库时,假设您这样做:
insert into tableX (anumber) values ('01');
事实上:
insert into tableX (anumber) values (to_number('01'));
所以它从一开始就消失了(请注意,该示例实际上是一个坏习惯!您不应该依赖于数据库中的强制转换,始终以正确的数据类型移交数据!)不,没有。Oracle将数据保存到数据库时,会以当时的格式保存数据。所有其他信息将被删除。无法恢复历史数据 事实上,当您以前将数据存储到数据库时,假设您这样做:
insert into tableX (anumber) values ('01');
事实上:
insert into tableX (anumber) values (to_number('01'));
所以它从一开始就消失了(请注意,该示例实际上是一个坏习惯!您不应该依赖于数据库中的强制转换,始终以正确的数据类型移交数据!)不,没有。Oracle将数据保存到数据库时,会以当时的格式保存数据。所有其他信息将被删除。无法恢复历史数据 事实上,当您以前将数据存储到数据库时,假设您这样做:
insert into tableX (anumber) values ('01');
事实上:
insert into tableX (anumber) values (to_number('01'));
所以它从一开始就消失了(请注意,该示例实际上是一个坏习惯!您不应该依赖于数据库中的强制转换,始终以正确的数据类型移交数据!)不,没有。Oracle将数据保存到数据库时,会以当时的格式保存数据。所有其他信息将被删除。无法恢复历史数据 事实上,当您以前将数据存储到数据库时,假设您这样做:
insert into tableX (anumber) values ('01');
事实上:
insert into tableX (anumber) values (to_number('01'));
所以它从一开始就消失了(请注意,该示例实际上是一个坏习惯!您永远不应该依赖于在数据库中进行强制转换,始终以正确的数据类型移交数据!)如果您需要证明前导零是一个接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零
如果数据是一个数字,就让它保持原样。如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零
如果数据是一个数字,就让它保持原样。如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零
如果数据是一个数字,就让它保持原样。如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零
如果数据是一个数字,就让它保持原样。所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。所以我没有办法修改旧数据。实际上没有旧数据。