oracle - “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
解决方案
不是declare
,而是variable
。
SQL Plus 是 Oracle 的命令行工具,可让您访问 Oracle 数据库。SQL Developer 是 Oracle 的 GUI 工具;因此,它能够运行许多 SQL Plus 命令。
但是,其他工具并非如此——它们可以很好地与纯 SQL 或 PL/SQL 一起使用,但不能与 SQL*Plus 命令一起使用。
因此,删除前两行并执行其余的。不过,它应该可以工作 - 不是您想要的方式。
推荐阅读
- oracle - 用于计算嵌套表内属性的 Oracle 触发器
- python - 为什么 tkinter 绑定事件只触发一次?
- discord.py - 如何在 discord.py 中获得命令的主要“功能”?
- javascript - 如何使用 chartjs 和 Angular 制作图表?
- csv - 如何将 Yahoo Finance 中的历史数据导入 Google 表格并使其自动更新?
- php - 如何用循环填充多维数组
- javascript - 如何在发出事件 Socket.io 后监听事件
- mysql - 如何从mysql中的group by和groupconcat其他字段中获取最大值?
- python - 数据集中的新列基于项目的最后一个值
- video-streaming - 从一个接口到另一个接口的多播路由