- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
* EDIT6:* 这就是最终为我工作的结果(来自已接受的答案):
var ret1 number
var tran_cnt number
var msg_cnt number
var rc refcursor
exec :tran_cnt := 0
exec :msg_cnt := 123
exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => :rc)
print :tran_cnt
print :msg_cnt
print :rc
<小时/>
SQL Developer 让这变得 super 困难/不可能?。我不关心该实用程序是否基于命令行;我只是希望能够快速运行并查看它。如果它也能捕获错误那就太好了。如果能够逐渐(交互式)登录,并一次指定所有内容(类似于典型的基于 ftp/sftp cmd 的客户端的工作方式),那就太好了。
我的平台是Windows Server 2008 + Cygwin。
编辑:也许您知道如何使用 Python 编写脚本?
编辑 2: 在 MSFT SQL 服务器中,我只需键入以下内容:
get_user 1;
然后突出显示它并按 F5,我得到:
login name
NULL Somename
打印到输出窗口。 Oracle SQL 开发人员对此根本没有帮助。我不知道如何传入 1,我不知道如何查看返回的实际行/记录。
编辑3:当我仅输入var rc refcursor;
并选择它并运行它时,我收到此错误(GUI):
An error was encountered performing the requested operation:
ORA-00900: invalid SQL statement
00900.00000 - "invalid SQL statement"
* Cause:
* Action:
Vendor code 900Error at Line: 2
编辑4:
我正在尝试运行一个过程,其定义如下所示:
create or replace procedure get_account
(
Vret_val out number,
Vtran_count in out number,
Vmessage_count in out number,
Vaccount_id IN NUMBER
, rc1 in out sys_refcursor
)as
begin
...
我收到错误:
Error starting at line 2 in command:
exec :rc := get_account(1)
Error report:
ORA-06550: line 1, column 24:
PLS-00306: wrong number or types of arguments in call to 'GET_ACCOUNT'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
rc
------
我很接近......请帮忙。
* 编辑 5:*
我正在运行的脚本(功能相同),错误始终相同:
var ret1 number
var tran_cnt number
var msg_cnt number
var rc refcursor
exec :tran_cnt := 0
exec :msg_cnt := 123
exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)
脚本输出(按 F5)(可能是多次运行的多条消息。):
Error report:
ORA-06550: line 1, column 134:
PLS-00201: identifier 'RC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
anonymous block completed
anonymous block completed
Error starting at line 7 in command:
exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)
Error report:
ORA-06550: line 1, column 134:
PLS-00201: identifier 'RC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
anonymous block completed
anonymous block completed
Error starting at line 7 in command:
exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)
Error report:
ORA-06550: line 1, column 134:
PLS-00201: identifier 'RC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
为什么说是第 1 行第 134 列?没有线延伸那么远......
最佳答案
不仅有一种方法可以做到这一点,而且有不止一种方法可以做到这一点(我承认这不是很 Pythonic,但 SQL*Developer 是用 Java 编写的)。
我有一个带有此签名的过程:get_maxsal_by_dept( dno number, maxsal out number)
。
我在 SQL*Developer 对象导航器中突出显示它,调用右键单击菜单并选择运行。 (我可以使用 ctrl+F11。)这会生成一个带有测试工具的弹出窗口。 (注意:如果存储过程位于包中,则需要右键单击该包,而不是包含过程名称的包下面的图标;您将然后当测试工具出现时,从包的“目标”列表中选择存储过程。)在此示例中,测试工具将显示以下内容:
DECLARE
DNO NUMBER;
MAXSAL NUMBER;
BEGIN
DNO := NULL;
GET_MAXSAL_BY_DEPT(
DNO => DNO,
MAXSAL => MAXSAL
);
DBMS_OUTPUT.PUT_LINE('MAXSAL = ' || MAXSAL);
END;
我将变量 DNO 设置为 50,然后按“确定”。在“运行 - 日志” Pane (位于右下角,除非您已关闭/移动/隐藏它)中,我可以看到以下输出:
Connecting to the database apc.
MAXSAL = 4500
Process exited.
Disconnecting from the database apc.
公平地说,运行程序对于返回引用游标的函数不太友好,例如:get_emps_by_dept (dno number) return sys_refcursor
。
DECLARE
DNO NUMBER;
v_Return sys_refcursor;
BEGIN
DNO := 50;
v_Return := GET_EMPS_BY_DEPT(
DNO => DNO
);
-- Modify the code to output the variable
-- DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);
END;
但是,至少它提供了将任何更改保存到文件的机会,因此我们可以保留在调整线束方面的投资......
DECLARE
DNO NUMBER;
v_Return sys_refcursor;
v_rec emp%rowtype;
BEGIN
DNO := 50;
v_Return := GET_EMPS_BY_DEPT(
DNO => DNO
);
loop
fetch v_Return into v_rec;
exit when v_Return%notfound;
DBMS_OUTPUT.PUT_LINE('name = ' || v_rec.ename);
end loop;
END;
同一位置的输出:
Connecting to the database apc.
name = TRICHLER
name = VERREYNNE
name = FEUERSTEIN
name = PODER
Process exited.
Disconnecting from the database apc.
<小时/>
或者,我们可以使用 SQL Developer 工作表中的旧 SQLPLus 命令:
var rc refcursor
exec :rc := get_emps_by_dept(30)
print rc
在这种情况下,输出将显示在脚本输出 Pane 中(默认位置是结果选项卡右侧的选项卡)。
最早版本的 IDE 对 SQL*Plus 的支持并不多。然而,从 1.2.1 开始,所有上述命令都被支持。引用the matrix in the online documentation了解更多信息。
<小时/>"When I type just
var rc refcursor;
and select it and run it, I get this error (GUI):"
工作表解释 SQLPlus 命令的方式存在一个功能或错误。它假定 SQLPlus 命令是脚本的一部分。因此,如果我们输入一行 SQL*Plus,例如 var rc refcursor
并单击 Execute Statement
(或 F9 ),工作表会抛出 ORA- 900 因为这不是可执行语句,即它不是 SQL 。我们需要做的是单击 Run Script
(或 F5 ),即使对于单行 SQL*Plus 也是如此。
"I am so close ... please help."
您的程序是一个具有五个强制参数签名的过程。您收到错误是因为您将其作为函数调用,并且仅使用一个参数:
exec :rc := get_account(1)
您需要的是如下内容。为了清楚起见,我使用了命名符号。
var ret1 number
var tran_cnt number
var msg_cnt number
var rc refcursor
exec :tran_cnt := 0
exec :msg_cnt := 123
exec get_account (Vret_val => :ret1,
Vtran_count => :tran_cnt,
Vmessage_count => :msg_cnt,
Vaccount_id => 1,
rc1 => :rc )
print tran_count
print rc
也就是说,每个 OUT 或 IN OUT 参数都需要一个变量。 IN 参数可以作为文字传递。前两个 EXEC 语句将值分配给几个 IN OUT 参数。第三个 EXEC 调用该过程。过程不返回值(与函数不同),因此我们不使用赋值语法。最后,该脚本显示映射到 OUT 参数的几个变量的值。
关于oracle - 如何使用 Oracle SQL Developer 运行存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3134923/
我在 A 和 B 两个团队工作。因此我需要创建和安装两个开发证书。当我在 Xcode 的“build设置”中将“代码签名身份”设置为一般值“iOS Developer”时,我两个团队的应用程序正在构建
我刚刚将 XCode 升级到 4.3.1。我正在使用脚本来构建(然后通过 Testflight 部署)我的应用程序。但我现在收到此错误: Error: No developer directory f
我找不到在 Firefox Developer Edition 56.0b4 上的所有 .js 和 .css 文件中搜索字符串的方法。 我找到了办法,但那是在52版本之前。我想知道为什么他们删除了这个
我制作了一个 Gatsby starter,两个不同的人向我报告说他们无法运行它,因为它在构建“开发包”时卡住了。开发和生产构建都不起作用。我无法在我自己的机器上重现这个问题,但我想为想要使用我的 s
我正在尝试创建一个过去 3 周的苹果开发者帐户。选择后 “选择您的实体类型 = 个人”和“条款和条件 = 同意” 出现错误提示“您的注册无法完成”。我给支持打了几次电话,发了几次邮件,他们都只是简单地
我会使用robovm填写我正在使用Android libgdx进行研究的应用程序,但我无法识别证书。 xcode首选项中的证书已正确下载,然后通常可以正常使用....我做了什么,因为它已过期,然后我使
如何禁用 同源政策在 Firefox 开发者版中。出于某种原因,我认为在 Developer Edition 中执行此操作应该很容易,但我找不到设置。 最佳答案 老实说,您不应该在任何浏览器中执行此操
我有一个提交列表(最新的在前): abcd4 message abcd3 wrong commit message2 abcd2 wrong commit message1 abcd1 message
假设当前分支是 MyFeatureX。并且本地 develop 分支是最新的。下面的两个陈述是等价的吗?推荐的语法是什么? git rebase origin/develop git rebase d
我刚刚 merge 了我的整个 develop history历史进入我的主分支。正如我所见,应该连接 network graph 中的两个分支,它没有。另外,我的主分支显示:This branch
嗨,我有一个基于主分支的开发分支。 我在开发分支中进行了更改。 现在,我的问题是如果要更新 master 分支,如何在不丢失我在 develop 分支中的更改的情况下升级基于 master 分支的 d
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
与 firebug 相比,我更喜欢 firefox 开发人员检查器。 但是可以在原生 JS 控制台中显示 PHP 日志吗? 谢谢 :) 最佳答案 我刚刚安装了 Chrome Logger ( gith
今天我注意到我的 Mac 上有最新版本的 Xcode,一个在/Developer/Applications 中,另一个在/Applications 中。 /Applications 中的那个是 App
这很奇怪。显然,针对我的本地 develop 分支和远程 develop 分支进行 rebase 之间存在一些差异。以下是一些详细信息: 假设我有一个特性分支,feat,我不时对其进行 rebase:
这个问题在这里已经有了答案: difference between origin/branch_name and branch_name? (4 个答案) 关闭 5 年前。 我是新手,开始在项目中使
已经有很多关于此的问题回答了我的一些问题。我正在寻找在设置和管理这两个帐户方面有直接经验的人。 我有一种情况需要向超过 100 人发送私有(private) Beta 测试(iOS 的临时设备限制),
我想了解如何获取开发人员ID应用程序或开发人员ID安装程序证书的私钥? 开发人员ID证书只能由帐户持有者 https://developer.apple.com/support/roles/创建-完成
Mac Developer中的3rd Party Mac Developer Application和Code Signing Identity配置文件有什么区别?哪个是Mac App Store发行
我正在尝试使用 OminChannel 方法将 Google Pay 集成到我的网站中。官方文档提到 要打开 Google API 库,请从导航菜单中选择 API 和服务 > 库。搜索“NBU 付款
我是一名优秀的程序员,十分优秀!