*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
Run Code Online (Sandbox Code Playgroud)
SQL Developer让这个超级难/不可能?我不在乎该实用程序是否基于命令行; 我只是希望能够快速运行并查看它.如果它也能很好地捕获错误,那就太好了.能够逐步(交互式)登录,以及一次性指定所有内容(类似于典型的基于ftp/sftp cmd的客户端的工作方式)将会很棒.
我的平台是Windows Server 2008 + Cygwin.
编辑:也许你会知道如何使用Python编写脚本?
编辑2:在MSFT SQL服务器中,我只需输入:
get_user 1;
Run Code Online (Sandbox Code Playgroud)
然后突出显示它并点击F5,我得到:
login name
NULL Somename
Run Code Online (Sandbox Code Playgroud)
打印到输出窗口.Oracle SQL开发人员根本没有帮助.我不知道如何传入1,我不知道如何查看返回的实际行/记录.
编辑3:当我输入var rc refcursor;并选择并运行它时,我收到此错误(GUI):
An error was encountered performing the requested …Run Code Online (Sandbox Code Playgroud) oracle plsql stored-procedures sys-refcursor oracle-sqldeveloper
在MS SQL Server中,如果我想检查存储过程的结果,我可能会在Management Studio中执行以下操作.
--SQL SERVER WAY
exec sp_GetQuestions('OMG Ponies')
Run Code Online (Sandbox Code Playgroud)
结果窗格中的输出可能如下所示.
ID Title ViewCount Votes
----- ------------------------------------------------- ---------- --------
2165 Indexed View vs Indexes on Table 491 2
5068 SQL Server equivalent to Oracle’s NULLS FIRST 524 3
1261 Benefits Of Using SQL Ordinal Position Notation? 377 2
(3 row(s) affected)
Run Code Online (Sandbox Code Playgroud)
无需编写循环或PRINT语句.
要在Oracle中执行相同的操作,我可能会在SQL Developer中执行以下匿名块
--ORACLE WAY
DECLARE
OUTPUT MYPACKAGE.refcur_question;
R_OUTPUT MYPACKAGE.r_question;
USER VARCHAR2(20);
BEGIN
dbms_output.enable(10000000);
USER:= 'OMG Ponies';
recordCount := 0;
MYPACKAGE.GETQUESTIONS(p_OUTPUT => OUTPUT,
p_USER=> USER,
) ;
DBMS_OUTPUT.PUT_LINE('ID | …Run Code Online (Sandbox Code Playgroud) 我有一张如下表
ID created sent type
-----------------------------------------------------
0001463583000051783 31-JUL-12 1 270
0081289563000051788 01-AUG-12 1 270
0081289563000051792 01-AUG-12 1 270
0081289563000051791 01-AUG-12 1 270
0081289563000051806 01-AUG-12 1 270
0001421999000051824 06-AUG-12 1 270
0001421999000051826 06-AUG-12 1 270
0001464485000051828 06-AUG-12 1 270
0082162128000051862 09-AUG-12 2 278
0082162128000051861 09-AUG-12 2 278
0022409222082910259 09-AUG-12 3 278
Run Code Online (Sandbox Code Playgroud)
我想要输出以下内容
created Count
---------------------
31-JUL-12 1
01-AUG-12 4
06-AUG-12 3
09-AUG-12 3
Run Code Online (Sandbox Code Playgroud)
在Oracle 10g上使用SQL Developer实现这一目标有多难
我已经尝试了几个查询来生成这样一个表,最后它没有按日期对计数进行分组,当我们每天平均5000-10000个事务时,只给我一个'1'计数.我可能过于复杂了.但我想要一些简单的事情,我可以在日期范围内每天提取交易量.
当我运行查询时,目前发生的事情是
created Count
---------------------
31-JUL-12 1
01-AUG-12 1
01-AUG-12 1
01-AUG-12 1
01-AUG-12 1 …Run Code Online (Sandbox Code Playgroud) 我有一个employees表,我想添加一个第三列,它被称为名为"FullName"的名字和名字的串联.如何在不丢失前两列任何数据的情况下实现这一目标?
我听说可以使用像Oracle SQL开发人员这样的客户端连接到大型机DB2数据库.我看上线了,似乎无法在SQL开发人员中找到执行此操作所需的连接器文件.任何人都可以指示我使用链接来完成这项工作吗?或者告诉我,我是否只是在寻找错误的东西.我有连接器在Oracle中使用MySQL数据库,所以我认为它与DB2数据库类似.
我有一个varchar2类型的transdate列,它有以下主菜
01/02/2012
01/03/2012
Run Code Online (Sandbox Code Playgroud)
等等
我使用to_date函数将其转换为另一列中的日期格式.这是我得到的格式.
01-JAN-2012
03-APR-2012
Run Code Online (Sandbox Code Playgroud)
当我试图提取weekno时,我得到所有空值.
选择to_char(to_date(TRANSDATE),'w')作为tablename的weekno.
null
null
Run Code Online (Sandbox Code Playgroud)
如何以上述格式从日期获取weekno?
如何更正以下SQL代码,特别是COALESCE部分?
insert into Stmt G (ID,blah,foo)
select
coalesce(SELECT ID FROM Stmt G WHERE G.CLAIMNO=C.CLNUMBER, select StmtSeq.nextval from dual),
c.blah,
d.foo
from claim c
left join d on ...;
Run Code Online (Sandbox Code Playgroud)
如果ClaimNo匹配,我将从Stmt表中获取ID,否则创建一个新ID.SQL中不允许这样做吗?我怎么能写这个陈述?
我现在正在coalesce部分出现"Missing Expression"错误.
每次运行Oracle SQL Developer或Oracle Data Modeler时,都会收到以下错误消息:
ora-01882"未找到时区地区"
挖掘这个问题,我发现Oracle SQL Developer和Oracle Data Modeler都说我的时区是Europe/Berlin,它没有列在Oracle的系统视图中V$TIMEZONE_NAMES.
因此,我需要更改Oracle SQL Developer(而不是数据库)中的时区以匹配找到的最相似的时区V$TIMEZONE_NAMES.
由于这些聪明的代码,我知道如何在SQL Server中执行此操作
Use <database>
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script]
FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC
Run Code Online (Sandbox Code Playgroud)
消息来源: 恢复未保存的SQL查询脚本
有没有办法在Oracle SQL Developer中执行此操作?
我有用sqldeveloper编写的查询,但我不知道如何以整齐的顺序对齐或格式化查询.
PS:我不知道这里是否可以提出这个问题.如果有人知道答案,请回答.