获取直到目前为止今天过去的秒数(从 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;