技术开发 频道

45个非常有用的Oracle查询语句分享

  获取直到目前为止今天过去的秒数(从 00:00 开始算)

  1 SELECT (SYSDATE - 
      TRUNC (SYSDATE)) * 24 * 60 * 60 num_of_sec_since_morning
  2 FROM DUAL;

  获取今天剩下的秒数(直到 23:59:59 结束)

  1 SELECT (TRUNC (SYSDATE+1) -
      SYSDATE) * 24 * 60 * 60 num_of_sec_left 
  2 FROM DUAL;

  数据字典查询

  检查在当前数据库模式下是否存在指定的表

  这是一个简单的查询语句,用来检查当前数据库是否有你想要创建的表,允许你重新运行创建表脚本,这个也可以检查当前用户是否已经创建了指定的表(根据这个查询语句在什么环境下运行来查询)。

  1 SELECT table_name 
  2 FROM user_tables 
  3 WHERE table_name = 'TABLE_NAME';

  检查在当前表中是否存在指定的列

  这是个简单的查询语句来检查表里是否有指定的列,在你尝试使用 ALTER TABLE 来添加新的列新到表中的时候非常有用,它会提示你是否已经存在这个列。

  1 SELECT column_name AS FOUND 
  2 FROM user_tab_cols 
  3 WHERE table_name = 'TABLE_NAME' AND column_name = 'COLUMN_NAME';

  显示表结构

  这 个查询语句会显示任何表的 DDL 状态信息。请注意我们已经将‘TABLE’作为第一个信息提交了。这个查询语句也可以用来获取任何数据库对象的 DDL 状态信息。举例说明,只需要把第一个参数替换成‘VIEW’,第二个修改成视图的名字,就可以查询视图的 DDL 信息了。

  1 SELECT DBMS_METADATA.get_ddl ('TABLE', 'TABLE_NAME', 'USER_NAME')
    FROM DUAL;

  获取当前模式

  这是另一个可以获得当前模式的名字的查询语句。

  1 SELECT SYS_CONTEXT ('userenv', 'current_schema') FROM DUAL;

  修改当前模式

  这是另一个可以修改当前模式的查询语句,当你希望你的脚本可以在指定的用户下运行的时候非常有用,而且这是非常安全的一个方式。

 1 ALTER SESSION SET CURRENT_SCHEMA = new_schema;
4
相关文章