首页 > 解决方案 > “declare”适用于 sqlplus 和 sql developer,但为什么不适用于 sql navigator?

问题描述

我试图在 sqlplus 和 sql developer 上声明/初始化变量并且它有效。但是当我复制/粘贴相同的代码并在 sql navigator 上执行时它不起作用。你能告诉我为什么以及我需要改变什么,以便它也适用于 sql navigator 吗?

variable g_firstname varchar2(30)
variable g_lastname varchar2(30)
declare
v_firstname varchar2(30);
v_lastname varchar2(30);
begin
v_firstname := 'Tony';
v_lastname := 'Stark';
:g_firstname := v_firstname;
:g_lastname := v_lastname;
end;
/
print g_firstname g_lastname

标签: oracleoracle-sqldevelopersqlplussql-navigator

解决方案


不是declare,而是variable

SQL Plus 是 Oracle 的命令行工具,可让您访问 Oracle 数据库。SQL Developer 是 Oracle 的 GUI 工具;因此,它能够运行许多 SQL Plus 命令。

但是,其他工具并非如此——它们可以很好地与纯 SQL 或 PL/SQL 一起使用,但不能与 SQL*Plus 命令一起使用。

因此,删除前两行并执行其余的。不过,它应该可以工作 - 不是您想要的方式。


推荐阅读