精华内容
下载资源
问答
  • Oracle设置和删除可用

    千次阅读 2015-08-08 17:56:10
    Oracle设置和删除可用1、可用是什么?就是表中的1个或多个被ALTER TABLE…SET UNUSED 语句设置为无法再被程序利用的。2、使用场景? If you are concerned about the length of time it could take to ...

    Oracle设置和删除不可用列

    1、不可用列是什么?

    就是表中的1个或多个列被ALTER TABLE…SET UNUSED 语句设置为无法再被程序利用的列。

    2、使用场景?
    If you are concerned about the length of time it could take to drop column data from
    all of the rows in a large table, you can use the ALTER TABLE…SET UNUSED statement.

    如果你担心从一个大表中删除一列可能花费大量时间,你可以使用ALTER TABLE…SET UNUSED语句。

    如果你有这个需求,要删除某一个读写频繁的大表上的某些列,
    如果你在业务繁忙时间直接执行 ALTER TABLE ABC DROP (COLUMN);
    可能会收到 ORA-01562 - failed to extend rollback segment number string,
    这是因为在这个删除列的过程中你可能会可能消耗掉整个回滚表空间,造成这样的错误出现。

    3、使用理由(原理和优势)?
    3.1 设置不可用列
    This statement marks one or more columns as unused, but does not actually remove
    the target column data or restore the disk space occupied by these columns。
    a column that is marked as unused is not displayed in queries or data dictionary
    views, and its name is removed so that a new column can reuse that name.

    该语句可将一个或多个列标识为不可用,但实际上并不是移除了列数据或回收了这些列占用的空间。
    一个不可用列不会在查询或数据字典视图中显示, 其列名被删除以至于新增的列可以重用其列名。

    In most cases, constraints, indexes, and statistics defined on the column are also removed.
    在多数情况下,列上的约束,索引,和统计信息也被移除。

    The exception is that any internal indexes for LOB columns that are marked unused are not removed.
    例外情况是被标识为不可用的LOB列的内部索引不会被移除。

    3.2 删除不可用列
    ALTER TABLE…DROP UNUSED COLUMNS 语句仅针对不可用列,用于正式删除被标识为不可用的列(物理上删除列同时回收被占用的空间)。

    In the ALTER TABLE statement that follows, the optional clause CHECKPOINT is specified.
    This clause causes a checkpoint to be applied after processing the specified number of
    rows, in this case 250. Checkpointing cuts down on the amount of undo logs
    accumulated during the drop column operation to avoid a potential exhaustion of
    undo space.

    在接下来的ALTER TABLE语句中个,指定了可选条件 CHECKPOINT。
    这个条件将在处理过程达到指定行数时触发一个检查点,此处为250. 检查点削减了在删除列操作中累积的undo logs的数量,
    从而避免潜在的undo空间耗尽。

    ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS CHECKPOINT 250;

    4、使用限制?
    1)无法删除属于 SYS 的表中的列
    2)

    5、语法结构?
    ALTER TABLE…SET UNUSED(C1,C2..)
    ALTER TABLE…DROP UNUSED COLUMNS

    例如:
    ALTER TABLE hr.admin_emp SET UNUSED (hiredate, mgr);
    ALTER TABLE hr.admin_emp DROP UNUSED COLUMNS;

    5、数据字典
    USER_UNUSED_COL_TABS
    ALL_UNUSED_COL_TABS
    DBA_UNUSED_COL_TABS

    SELECT * FROM DBA_UNUSED_COL_TABS;
    OWNER TABLE_NAME COUNT
    --------------------------- --------------------------- -----
    HR ADMIN_EMP 2

    –count列代表不可用列数量

    6、使用案例?

    SCOTT@orcl> create table tmp_all_objects
      2  AS
      3  SELECT object_id, object_name
      4  from dba_objects
      5  ;
    
    表已创建。
    SYS@orcl> exec show_space('TMP_ALL_OBJECTS','SCOTT');
    Unformatted Blocks  ....................               0
    FS1 Blocks (0-25)   ....................               0
    FS2 Blocks (25-50)  ....................               0
    FS3 Blocks (50-75)  ....................               0
    FS4 Blocks (75-100) ....................               0
    Full Blocks         ....................             352
    Total Blocks ...........................             384
    Total Bytes  ...........................       3,145,728
    Total MBytes ...........................               3
    Unused Blocks...........................              18
    Unused Bytes ...........................         147,456
    Last Used Ext FileId....................               4
    Last Used Ext BlockId...................          14,592
    Last Used Block.........................             110
    
    PL/SQL 过程已成功完成。
    
    
    
    
    SYS@orcl> DESC DBA_UNUSED_COL_TABS
     名称                                     是否为空? 类型
     ---------------------------------------- -------- ---------------------------
     OWNER                                    NOT NULL VARCHAR2(30)
     TABLE_NAME                               NOT NULL VARCHAR2(30)
     COUNT                                             NUMBER
    
    SYS@orcl> SELECT * FROM DBA_UNUSED_COL_TABS;
    
    未选定行
    
    SCOTT@orcl> ALTER TABLE TMP_ALL_OBJECTS SET UNUSED(OBJECT_NAME);
    
    表已更改。
    
    SYS@orcl> SELECT * FROM DBA_UNUSED_COL_TABS;
    
    OWNER                          TABLE_NAME                          COUNT
    ------------------------------ ------------------------------ ----------
    SCOTT                          TMP_ALL_OBJECTS                         1
    
    SYS@orcl> exec show_space('TMP_ALL_OBJECTS','SCOTT');
    Unformatted Blocks  ....................               0
    FS1 Blocks (0-25)   ....................               0
    FS2 Blocks (25-50)  ....................               0
    FS3 Blocks (50-75)  ....................               0
    FS4 Blocks (75-100) ....................               0
    Full Blocks         ....................             352
    Total Blocks ...........................             384
    Total Bytes  ...........................       3,145,728
    Total MBytes ...........................               3
    Unused Blocks...........................              18
    Unused Bytes ...........................         147,456
    Last Used Ext FileId....................               4
    Last Used Ext BlockId...................          14,592
    Last Used Block.........................             110
    
    PL/SQL 过程已成功完成。
    
    --删除不可用列
    SCOTT@orcl> ALTER TABLE TMP_ALL_OBJECTS DROP UNUSED COLUMNS CHECKPOINT 250;
    
    表已更改。
    
    SYS@orcl> SELECT * FROM DBA_UNUSED_COL_TABS;
    
    未选定行
    
    
    SYS@orcl> exec show_space('TMP_ALL_OBJECTS','SCOTT');
    Unformatted Blocks  ....................               0
    FS1 Blocks (0-25)   ....................               0
    FS2 Blocks (25-50)  ....................               1
    FS3 Blocks (50-75)  ....................             350
    FS4 Blocks (75-100) ....................               1
    Full Blocks         ....................               0
    Total Blocks ...........................             384
    Total Bytes  ...........................       3,145,728
    Total MBytes ...........................               3
    Unused Blocks...........................              18
    Unused Bytes ...........................         147,456
    Last Used Ext FileId....................               4
    Last Used Ext BlockId...................          14,592
    Last Used Block.........................             110
    
    PL/SQL 过程已成功完成。
    
    --move操作,减少碎片
    SCOTT@orcl> ALTER TABLE TMP_ALL_OBJECTS MOVE;
    
    表已更改。
    
    
    SYS@orcl> exec show_space('TMP_ALL_OBJECTS','SCOTT');
    Unformatted Blocks  ....................               0
    FS1 Blocks (0-25)   ....................               0
    FS2 Blocks (25-50)  ....................               0
    FS3 Blocks (50-75)  ....................               0
    FS4 Blocks (75-100) ....................               0
    Full Blocks         ....................             113
    Total Blocks ...........................             128
    Total Bytes  ...........................       1,048,576
    Total MBytes ...........................               1
    Unused Blocks...........................               5
    Unused Bytes ...........................          40,960
    Last Used Ext FileId....................               4
    Last Used Ext BlockId...................          14,808
    Last Used Block.........................               3
    
    PL/SQL 过程已成功完成。
    
    --可以看到总块数下降
    
    --删除测试表
    SCOTT@orcl> drop table TMP_ALL_OBJECTS;
    
    表已删除。

    7、关于不可用列的恢复(以下摘自网络)
    刚才有个人问我如何修复被设置为UNUSED的字段,我考虑了一下,以下的方法可以恢复(以下步骤执行前要做好备份),没有经验的DBA不要轻易尝试。

    1、创建实验表TTTA

    SQL> CREATE TABLE TTTA ( A INTEGER,B INTEGER,C VARCHAR2(10),D INTEGER);
    表已创建。
    SQL> INSERT INTO TTTA VALUES (1,2,'3',4);
    已创建 1 行。
    SQL> INSERT INTO TTTA VALUES (2,3,'4',5);
    已创建 1 行。
    SQL> COMMIT;
    提交完成。
    ALTER TABLE TTTA SET UNUSED COLUMN C;
    

    2、以下进行恢复

    SQL> SELECT OBJ# FROM OBJ$ WHERE NAME='TTTA';
          OBJ#
    ----------
         32067
    SELECT COL#,INTCOL#,NAME FROM COL$ WHERE OBJ#=32067;
          COL#    INTCOL# NAME
    ---------- ---------- ------------------------------
             1          1 A
             2          2 B
             0          3 SYS_C00003_08031720:09:55$   被UNUSED的字段
             3          4 D
    SQL> SELECT COLS FROM TAB$ WHERE OBJ#=32067;
          COLS
    ----------
             3      ------字段数变为3了
    
    
    SQL> UPDATE COL$ SET COL#=INTCOL# WHERE OBJ#=32067;
    已更新4行。
    SQL> UPDATE TAB$ SET COLS=COLS+1 WHERE OBJ#=32067;
    已更新 1 行。
    UPDATE COL$ SET NAME='C' WHERE OBJ#=32067 AND COL#=3;
    UPDATE COL$ SET PROPERTY=0 WHERE OBJ#=32067;
    SQL> COMMIT;

    3、重启数据库

    SQL> SELECT * FROM SCOTT.TTTA;
             A          B C                   D
    ---------- ---------- ---------- ----------
             1          2 3                   4
             2          3 4                   5

    恢复完成

    展开全文
  • 如何解决该扩展程序未列在 Chrome 网上应用店中,并可能是知情的情况下添加的 使用Google插件的时候,出现了这个问题,当时是直接下载的crx文件,然后拖拽到浏览器中进行安装的,过了不久,这个插件并能...

    如何解决该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的

    在使用Google插件的时候,出现了这个问题,当时是直接下载的crx文件,然后拖拽到浏览器中进行安装的,过了不久,这个插件并不能进行使用了。
    出现:

    如何解决
    该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的
    -------------------

    方法一

    1、首先把需要安装的第三方插件,后缀.crx 改成 .rar,然后解压,得到一个文件夹
    2、再打开chrome://extensions/谷歌扩展应用管理,点击右上角的开发者模式,就可以看到“加载正在开发的扩展程序”这一选项。
    3、选择刚才步骤1中解压好的文件夹,确定
    4、确认新增扩展程序,点击添加,成功添加应用程序。

    如出现如图情况

    出现这种情况Chrome浏览器会提示无法加载以下来源的扩展程序: xxx路径(Chrome插件文件的解压位置)Cannot load extension with file or directory name _metadata. Filenames starting with "_" are reserved for use by the system.出现这种情况,是因为这款Chrome插件与新版的Chrome浏览器有些不兼容,这时候,用户可以打开刚刚解压的Chrome插件文件夹,并把其中_metadata文件夹的名字修改为metadata(把前面的下划线去掉),如图所示:

    更新文件夹名称成功以后,点击该错误提示下方的“重试”按钮,就可以成功地把Chrome插件加载谷歌浏览器中了,如图所示

    基于这种模式安装的chrome插件会因为用户启用了开发者模式而遭到谷歌的警告,用户可以选择忽略Chrome的警告
    --------------------- 

    方法二

    运行中输入“gpedit.msc” ,打开 本地策略组 ,导入chrome.adm,再被禁用的插件ID复制下来,依次找到:Google Chrome→扩展程序→配置扩展程序白名单,将刚才的复制的ID粘贴进去,操作如图:

    操作完后,再回到chrome扩展列表页面,可以看到被禁用的扩展,右侧启用的选项已变成可勾选状态,勾选启用该扩展即可!!

    展开全文
  • 一般来说,应该创建索引的的这些具有下列特点: 1,对于那些查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些很少使用到,因此有索引或者无索引,并能提高查询速度。相反,由于增加了索引,...

    一般来说,不应该创建索引的的这些列具有下列特点:

    1,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

    2,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

    3,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

    4,当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。

    当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当对修改性能的要求远远大于检索性能时,不应该创建索引。

    展开全文
  • 操作Oracle数据库,插入数据时显示:ORA-00984列在此处允许错误: 出现的原因是由于,插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处允许异常。 ...

    操作Oracle数据库,插入数据时显示:ORA-00984列在此处不允许错误:

    出现的原因是由于,在插入字符或字符串型字段时。如果插入的数据是纯数字,则不会有错误;如果出现字符,则会报ORA-00984列在此处不允许异常。 可以创建TestUser表,如下:

        create table TestUser (  
            usercode char(5),  
            username varchar2(20)  
        )  

    以下例子请注意第一个字段usercode的

    1、正常例子:usercode为纯数字。可以正常插入TestUser表:

    insert into TestUser values (11111,'张三');  
    2、异常例子:usercode第一位出现字符A。就会出现ORA-00984列在此处不允许错误:
    insert into TestUser values (A1111,'张三'); 
    3、解决例子:usercode两端加上了单引号。解决办法很简单,只要给字段值前后加上单引号即可:
    insert into TestUser values ('A1111','张三'); 
    总之,对于字符型字段,大家在插入数据时最好在字段值两端加上单引号,这样就可以很好的避免ORA-00984错误了。
    展开全文
  • Python 显示完全问题

    千次阅读 2019-04-09 11:17:00
    使用pandas 过程中应该有很多人有我...以下代码可以解决我们的困扰 import pandas as pd # 显示所有 pd.set_option('display.max_columns', None) # 显示所有行 pd.set_option('display.max_rows', None) 设置...
  • PowerDesigner中有些列不能编辑

    千次阅读 2018-01-23 15:02:39
    刚接触项目的时候,使用了PowerDesigner来建数据库表,发现数据库表的有些列不能编辑 以下是我解决问题的方法 你很有可能是设置了Domains。 表中,你可以选使用快捷键Ctrl+u添加Doamins这个栏目,里面设置...
  • layui的右侧固定列不起作用

    千次阅读 2019-11-20 10:40:49
    于是我需要固定的分别加上了fixed: 'left’和fixed: ‘right’。 遇到的问题为初次进入页面或者刷新进入页面的时候,左侧只有表头是固定的,右侧固定。但是打开F12或者重新切换至当前页面,固定效果会正常显示...
  • Bootstrap 平移/偏移

    千次阅读 2018-03-04 21:31:27
    平移有些时候,我们希望两个相邻的紧挨一起,就可以使用栅格系统的平移功能。使用 .offset* 类,可以将向右平移,* 用于指定平移的数。比如,以下代码中的 .offset2 会导致 .span3 向右平移 2 ,....
  • 工作的时候写了很长的复杂sql,需要查询四次数据库,之后将结果两两合并再进行比较过滤,考虑使用Union进行结果合并,合并的时候报出了ORA-01789:查询块具有正确的结果数,以下为排查过程: 1.开始以为是查询结果...
  • 判断c的值A中是否存在(假定C列为需要判断,A列为...D1中输入以下公式,然后下拉公式即可 =IF(COUNTIF(A:A,C1)>0,"有","无") =IF(COUNTIF(目标,判断首个单元格)>0,"是","否") 结果: ...
  • 最近做项目的时候用到了将... 比如:数据库中存储了图片的路径(包括:本地路径、服务器路径),那么可以通过非绑定的方式来实现。 1、创建了一个非绑定并设置相应的属性,属性设置如下:  FieldName设为
  • 聚集索引一个表中只能有一个,但是限于一,可以是包含多个的组合索引 虽然可以多,但是越少越好 创建聚集索引的的重复性越低越好,因为如果聚集索引不是唯一值,SQL SERVER会生成额外的标识信息...
  • distinct 多详解

    万次阅读 2016-04-08 22:09:41
    1.distinct 单列select distinct(a) from tableA;...注意此时是将a,b,c三所有不同的组合全部出来,而仅仅只是distinct a 相当于以下语句: select a,b,c from tableA group by a,b,c3.另外一
  • 自增: 每次都会按顺序递增,可以保证一个表里的主键重复 该类型为integer 并且设置为自增 INTEGER PRIMARY KEY AUTOINCREMENT seq值: sqlite数据库用来保存表中自增中存储的最大自增值 新插入的记录...
  • 就会出现ORA-00984列在此处允许错误: insert into TestUser values (A1111,'张三');  3、解决例子:usercode两端加上了单引号。只要给字段值前后加上单引号即可: insert into TestUser values...
  • element-ui的table表格控件表头与内容列不对齐问题 element-ui的table表格控件表头与内容列不对齐问题 解决方法: 将以下样式代码添加到index.html、或app.vue中(必须是入口文件,起全局作用!) body .el-table...
  • SQL 数据库中,生成(Generated Column)是指由表中其他字段计算得到的,因此也称为计算(Computed Column)。 本文介绍各种主流数据库对于生成/计算的实现,包括 Oracle、MySQL、SQL Server、...
  • Hive Select 选择语句排除一或多

    千次阅读 2019-05-22 08:43:16
    有时候我们需要几乎所有的,但是包括分区或其中的某些,比如分区要放最后,我们要之前插入新并插入新的数据,这时候排除一或者多的 select 语句就十分有用了 排除num set hive.support....
  • 一定,但要求是一个key 2、一个表可以有几个标识?至多一个! 3、标识的类型只能是数值型 4、标识可以通过 SET auto_increment_increment=3;设置步长 可以通过 手动插入值,设置起始值 */ #一、创建表时...
  • SQL SERVER中使用表结构设计的时候: 提示是:允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。 解决方案: 启动MSSQL ...
  • [datatable]排序时指定某列不可排序 博客分类:  web前端 datatablejquery  datatable是一个jquery扩展的表格插件。提供了强大的表格功能。 官方地址:...
  • 给定一个Excel表格中的名称,返回相应的序号。 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... 示例 1: 输入: "A" ...
  • 最近使用Jquery easy ui框架做项目,其中遇到了双击列表设置某一列不可编辑的情况,具体详细代码如下 function OnClickRowListItemSelected(index){ if (endEditing()){ $('#list_item_selected').datagrid('...
  • 平时的excel应用中,避免了会遇到 需要将某两列或是甚至更多的内容合并显示中的情况。至于怎么合并,其实很简单,只要用“&”就可以将两个或更多个单元格的内容拼接一起。例如:公式:=A1&B1...
  • 式数据库简介

    千次阅读 2020-06-26 21:13:35
    存储DBMS将数据存储在列而不是行中。关系数据库管理系统(RDBMS)将行中的数据和数据属性存储为标题。基于行的DBMS和基于的DBMS都使用SQL作为查询语言,但是面向的DBMS可能会提供更好的查询性能。假设您需要...
  • 式数据库

    千次阅读 2015-09-29 23:05:03
    式数据库是以相关存储架构进行数据存储的数据库,主要...式数据库以行、的二维表的形式存储数据,但是却以一维字符串的方式存储,例如以下的一个表: EmpId Lastname Firstname Salary 1 Sm
  • 该种具有以下三种特点:1、的数据类型为带小数的数值类型2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,允许空值3、重复,具有标识表中每一行的作用,每个表只能有一个标识。...
  • SQL Server标识

    千次阅读 2019-06-22 21:57:35
    该种具有以下三种特点:1、的数据类型为带小数的数值类型2、进行插入(Insert)操作时,该的值是由系统按一定规律生成,允许空值3、重复,具有标识表中每一行的作用,每个表只能有一个标识。...
  • 解决方法:只需done回调函数执行以下方法 done: function(res, curr, count){ $(".layui-table-main tr").each(function (index ,val) { $($(".layui-table-fixed .layui-table-b...
  • Db2数据库中错误提示:23502,能把null 直插入到定义为not null 的中 问题如上所示,对于这种错误,一般是由于以下原因: 1、代码传值的过程中出现错误,没有将值传给特定的接受者,这时就得注意字母的大小...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,070,665
精华内容 428,266
关键字:

以下不在其列的