Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 复制oracle表后编辑该表_Sql_Oracle - Fatal编程技术网

Sql 复制oracle表后编辑该表

Sql 复制oracle表后编辑该表,sql,oracle,Sql,Oracle,我有一个包含两列的oracle表,它们都使用数字数据类型,当我输入任何以0开头的数字时,它将删除0。因此,解决方案是将数据类型更改为VARCHAR2。我有一个剧本 使用VARCHAR2和主键创建临时表 复制旧表 扔掉旧桌子 将临时表重命名为旧表 然而,我面临一个问题。复制表时,以前被截断的任何数据都会保持这种状态,我是否可以在旧数据的开头添加一个0?。下面是我创建的脚本 /* create a new table named temp */ CREATE TABLE TEMP_TABLE (

我有一个包含两列的oracle表,它们都使用数字数据类型,当我输入任何以0开头的数字时,它将删除0。因此,解决方案是将数据类型更改为VARCHAR2。我有一个剧本

  • 使用VARCHAR2和主键创建临时表
  • 复制旧表
  • 扔掉旧桌子
  • 将临时表重命名为旧表
然而,我面临一个问题。复制表时,以前被截断的任何数据都会保持这种状态,我是否可以在旧数据的开头添加一个0?。下面是我创建的脚本

/* 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'));

所以它从一开始就消失了(请注意,该示例实际上是一个坏习惯!您永远不应该依赖于在数据库中进行强制转换,始终以正确的数据类型移交数据!)

如果您需要证明前导零是一个接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零


如果数据是一个数字,就让它保持原样。

如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零


如果数据是一个数字,就让它保持原样。

如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零


如果数据是一个数字,就让它保持原样。

如果需要显示前导零,则您的问题是接口问题,而不是数据库问题。您可以格式化输出,以显示需要多少前导零


如果数据是一个数字,就让它保持原样。

所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。实际上没有旧数据。所以我没有办法修改旧数据。所以我没有办法修改旧数据。实际上没有旧数据。