美文网首页
oracle 笔记

oracle 笔记

作者: woniu_running | 来源:发表于2019-06-27 08:10 被阅读0次

    Oracle查询序列的下一个值、当前值(内置表:user_sequences、dual)
    select * from user_sequences seq where
    seq.sequence_name='BATCH_STEP_EXECUTION_SEQ';
    select BATCH_STEP_EXECUTION_SEQ.nextval from dual;
    select batch_step_execution_seq.currval from dual;

    查看用户所在的表空间
    select username,default_tablespace from dba_users;
    select username,defualt_tablespace from user_users;

    如何查看oracle表空间建立时的语句
    select dbms_metadata.get_ddl('TABLESPACE','tablespacename') from dual;

    查看表空间
    select * from dba_data_files;

    创建表空间

    1.永久表空间

    1。System 表空间

    2.SysAUX表空间

    2.撤销表空间

    3.临时表空间

    4.大文件表空间

    查询数据文件名
    select * from vdatafile; 查看控制文件 select * from vcontrolfile;
    查看日志文件
    select * from v$logfile;
    调整表空间和数据文件大小
    alter database datafile '表空间目录' resize 50m;
    alter tablespace 表空间名 resize 1g;

    移动数据文件

    1.关闭数据库

    shutdown immediate

    2.移动数据文件

    ! mv 旧的数据文件 新的数据文件

    3.启动数据库

    startup mount

    4.改变控制文件目录引用

    alert database rename file 旧的数据文件 to 新的数据文件

    5.打开数据库

    alter database open;

    6.建立更新过的控制文件的备份副本

    alert database backup controlfile to trace;

    移动日志文件

    1.关闭数据库

    shutdown immediate;

    2.移动日志文件

    ! mv 旧的日志文件 新的日志文件

    3.数据库启动

    startup mount;

    4.改变控制文件引用

    alter database rename file 旧的日志文件 to 新的日志文件

    5.将数据打开

    alter database open;

    移动控制文件

    select name,value from v$spparameter where name ='control_files';
    show parameter control_file;

    1.

    查看当前用户表的SQL
    select dbms_metadata.get_ddl('TABLE','EMPLOYEES') from dual;
    查看其他用表或索引的SQL
    SELECT DBMS_METADATA.GET_DDL('TABLE','DEPT','SCOTT') FROM DUAL;
    查看创建用户索引的SQL
    查看所需表的索引
    SQL> select INDEX_NAME, INDEX_TYPE, TABLE_NAME from user_indexes WHERE table_name='EMP';
    查看当前用户索引的SQL
    select dbms_metadata.get_ddl('INDEX','PK_DEPT') from dual;
    查看其他用户索引的SQL
    select dbms_metadata.get_ddl('INDEX','PK_DEPT','SCOTT‘) from dual;
    查看创建主键的SQL
    查看所需表的约束
    SQL> select owner, table_name, constraint_name, constraint_type from user_constraints where table_name='EMP';
    查看创建主键的SQL
    SELECT DBMS_METADATA.GET_DDL('CONSTRAINT','EMP_PK') FROM DUAL;
    查看创建外键的SQL
    SQL> SELECT DBMS_METADATA.GET_DDL('REF_CONSTRAINT','EMP_FK_DEPT') FROM DUAL;
    查看创建VIEW的语句
    查看当前用户视图的SQL
    SQL> SELECT dbms_metadata.get_ddl('VIEW', 'MY_TABLES')
    查看其他用户视图的SQL
    SQL> SELECT dbms_metadata.get_ddl('VIEW', 'MY_TABLES','SCOTT‘) FROM DUAL;
    查看创建视图的SQL也可以
    SQL> select text from user_views where view_name=upper('&view_name');
    DBMS_METADATA.GET_DDL的一些使用技巧
    1、得到一个用户下的所有表,索引,存储过程,函数的ddl
    SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)
    FROM USER_OBJECTS u
    where U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE','FUNCTION‘);
    2、得到所有表空间的ddl语句
    SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
    FROM DBA_TABLESPACES TS;
    3、得到所有创建用户的ddl
    SELECT DBMS_METADATA.GET_DDL('USER',U.username)
    FROM DBA_USERS U;
    4、去除storage等多余参数
    EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
    常见错误
    SQL> select dbms_metadata.get_ddl('TABLE','PC','SCOTT') from dual;
    ERROR:
    ORA-19206: Invalid value for query or REF CURSOR parameter
    ORA-06512: at "SYS.DBMS_XMLGEN", line 83
    ORA-06512: at "SYS.DBMS_METADATA", line 345
    ORA-06512: at "SYS.DBMS_METADATA", line 410
    ORA-06512: at "SYS.DBMS_METADATA", line 449
    ORA-06512: at "SYS.DBMS_METADATA", line 615
    ORA-06512: at "SYS.DBMS_METADATA", line 1221
    ORA-06512: at line 1
    no rows selected
    解决办法:运行$ORACLE_HOME/rdbms/admin/catmeta.sql

    3、查询alter日志目录
    show parameter dump

    相关文章

      网友评论

          本文标题:oracle 笔记

          本文链接:https://www.haomeiwen.com/subject/loeuvxtx.html