【发布时间】:2021-01-29 19:24:26
【问题描述】:
我正在将代码从 SQL Server 移植到 Oracle。
DECLARE @DispatchCount int,
@HeadCount int;
SELECT @DispatchCount = (
select 200 -- business query would replace sample
);
select @HeadCount = (
select 50 -- business query would replace sample
);
select @DispatchCount / @HeadCount;
我尝试了 oracle 声明语法。
DECLARE
head_count INTEGER;
BEGIN
select 100 as DUMMY into head_count from dual;
dbms_output.put_line(head_count);
END;
我正在从 cx_oracle 查询 Python 中的只读 oracle 11g 数据库:
cursor.execute(sql)
rows = cursor.fetchall()
这会在 fetchall 语句中引发错误:'not a query'。 有没有办法在 oracle 中声明可以在 SQL 查询中使用的变量?
【问题讨论】:
-
我看到了各种各样的答案,所以我只添加一些侧面 cmets:
dbms_output.put_line(head_count);行不会直接在 cx_Oracle 中执行任何操作,除非您执行一些额外的步骤,如 cx_Oracle 示例中所示 DbmsOutput.py .另一个评论是 11g 已经很老了。如果您使用的是“XE”版本,那么您应该考虑安装 XE 18c。 -
为什么需要一个数据库来计算一个除法?
-
有需要移植到Oracle的SQL Server数据库语句列表。