oracle - 使用 SQL Developer 执行 SQL
问题描述
我有一组 SQL 语句,我想执行这些语句来运行测试
create table t2 (x varchar2 (1), y int, z date, constraint pk_t2 primary key (y, z) );
insert into t2 values ('a', 111, sysdate );
DBMS_OUTPUT.put_line('Time 1: ');
-- Pause for 1 second.
sys.DBMS_SESSION.sleep(1);
insert into t2 values ('a', 111, sysdate );
DBMS_OUTPUT.put_line('Time 2: ');
-- Pause for 1 second.
sys.DBMS_SESSION.sleep(1);
insert into t2 values ('a', 111, sysdate );
DBMS_OUTPUT.put_line('Time 3: ' || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS.FF'));
-- Pause for 1 second.
sys.DBMS_SESSION.sleep(1);
insert into t2 values ('a', 111, sysdate );
DBMS_OUTPUT.put_line('Final: ' || TO_CHAR(SYSTIMESTAMP, 'HH24:MI:SS.FF'));
drop table t2;
如果我在 SQL Developer 中选择这组语句并单击“运行”,我会收到如下错误:
Error starting at line : 8 in command -
sys.DBMS_SESSION.sleep(1)
Error report -
Unknown Command
我是否对如何在 SQL Developer Studio 中运行 SQL 命令有语法问题或基本误解?
解决方案
您不能在PL/SQL 块之外运行 PL/SQL 代码 (DBMS_OUTPUT.PUT_LINE
和)。DBMS_SESSION.SLEEP
您需要将所有代码包装在BEGIN
/中END
并运行 DML 并将语句作为EXECUTE IMMEDIATE
语句插入。
BEGIN
EXECUTE IMMEDIATE 'create table t2 (x varchar2 (1), y int, z date, constraint pk_t2 primary key (y, z) )';
EXECUTE IMMEDIATE 'insert into t2 values (''a'', 111, sysdate )';
DBMS_OUTPUT.put_line ('Time 1: ' || TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
-- Pause for 1 second.
sys.DBMS_SESSION.sleep (1);
EXECUTE IMMEDIATE 'insert into t2 values (''a'', 111, sysdate )';
DBMS_OUTPUT.put_line ('Time 2: ' || TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
-- Pause for 1 second.
sys.DBMS_SESSION.sleep (1);
EXECUTE IMMEDIATE 'insert into t2 values (''a'', 111, sysdate )';
DBMS_OUTPUT.put_line ('Time 3: ' || TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
-- Pause for 1 second.
sys.DBMS_SESSION.sleep (1);
EXECUTE IMMEDIATE 'insert into t2 values (''a'', 111, sysdate )';
DBMS_OUTPUT.put_line ('Final: ' || TO_CHAR (SYSTIMESTAMP, 'HH24:MI:SS.FF'));
EXECUTE IMMEDIATE 'drop table t2';
END;
推荐阅读
- sql-server - 为什么创建用户定义的表类型需要“USE”?
- assembly - 我需要帮助理解某些说明的含义
- java - 无法从 Maven 类型项目创建类的对象
- python - 具有两个阶段来定义参数的函数
- elasticsearch - 范围查询包括给定的日期还是排除它?
- sd-card - CMD41 后 Sandisk SD 卡冻结
- kubernetes - 如何更改 configmap 数据的用户?
- ruby-on-rails - 模态打开后出现在 url 中的符号
- codenameone - 支持 DatagramSocket (UDP)?
- python - 如何用不同的情节修复颜色条