小编Ton*_*ews的帖子

ORACLE SQL:获取两个数字之间的所有整数

有没有办法在Oracle中用SQL选择两个数字之间包含的数字(整数); 我不想创建PL/SQL过程或函数.

例如,我需要得到3到10之间的数字.结果将是值3,4,5,6,7,8,9,10.

谢谢.

sql oracle numbers

20
推荐指数
2
解决办法
7万
查看次数

sql cross join - 有人找到了什么用途?

今天,在使用sql server进行10年开发的第一次中,我在生产查询中使用了交叉连接.我需要将结果集填充到报表中,并发现具有creative where子句的两个表之间的交叉连接是一个很好的解决方案.我想知道在交叉连接的生产代码中有什么用处?

更新:托尼安德鲁斯发布的代码非常接近我使用交叉联接的代码.相信我,我理解使用交叉连接的含义,并不会轻易做到这一点.我很高兴最终使用它(我是一个书呆子) - 有点像我第一次使用完全外连接的时候.

感谢大家的答案!这是我使用交叉连接的方式:

SELECT  CLASS, [Trans-Date] as Trans_Date,
SUM(CASE TRANS
     WHEN 'SCR' THEN [Std-Labor-Value]
     WHEN 'S+' THEN [Std-Labor-Value]
     WHEN 'S-' THEN [Std-Labor-Value]
     WHEN 'SAL' THEN [Std-Labor-Value]
     WHEN 'OUT' THEN [Std-Labor-Value]
     ELSE 0
END) AS [LABOR SCRAP],
SUM(CASE TRANS
     WHEN 'SCR' THEN  [Std-Material-Value]
     WHEN 'S+' THEN [Std-Material-Value]
     WHEN 'S-' THEN  [Std-Material-Value]
     WHEN 'SAL' THEN [Std-Material-Value]
     ELSE 0
END) AS [MATERIAL SCRAP], 
SUM(CASE TRANS WHEN 'RWK' THEN [Act-Labor-Value] ELSE 0 END) AS [LABOR REWORK],
SUM(CASE TRANS 
     WHEN 'PRD' …
Run Code Online (Sandbox Code Playgroud)

t-sql database sql-server cross-join

11
推荐指数
2
解决办法
2万
查看次数

在oracle中选择一个变量计数

嗨,我今天一直在尝试,没有运气.这个存储过程不起作用:(

CREATE OR REPLACE PROCEDURE LEAD_PURGE(closed IN DATE,
oprtr IN INTEGER,
leadscount OUT INTEGER)

is
BEGIN

SELECT COUNT(*) FROM LEADS_DELETED INTO leadscount;

COMMIT;
END LEAD_PURGE;
Run Code Online (Sandbox Code Playgroud)

database oracle stored-procedures count

9
推荐指数
2
解决办法
6万
查看次数

FORALL循环中的多个SQL语句

我想在oracle中只插入单个FORALL循环的不同表中插入.但FORALL不支持它.任何想法我该怎么办?

   create or replace PROCEDURE test IS
      TYPE avl_web_details IS TABLE OF available_web_details%ROWTYPE;
      var_avl_web_details avl_web_details := avl_web_details();
      UNIONTABLE VARCHAR2(30000);
      TYPE RepCurTyp IS REF CURSOR; 
      Rep_cv RepCurTyp; 
   BEGIN
      UNIONTABLE := '';
  execute immediate 'update tbl_used_webuda1 set flag=1';
  FOR tbl IN (SELECT tablename FROM tbl_used_webuda1 where flag=1)
      LOOP             
    UNIONTABLE := UNIONTABLE || 'select *' || ' from ' || tbl.tablename || 'union all ';     
END LOOP;

       IF (LENGTH(UNIONTABLE) > 10) THEN
      UNIONTABLE := '( ' || SUBSTR(UNIONTABLE,1, length(UNIONTABLE)-10) || ' ) '; …
Run Code Online (Sandbox Code Playgroud)

sql oracle11g forall

7
推荐指数
2
解决办法
3万
查看次数

IN子句的函数或过程

我想编写一个可以在另一个过程的IN子句中使用的函数或过程.该函数或过程将返回ID号.

主程序会说类似的东西

SELECT *
FROM EMPLOYEES
WHERE OFFICE_ID IN (GET_OFFICE_IDS);  -- GET_OFFICE_IDS requires no parameters
Run Code Online (Sandbox Code Playgroud)

GET_OFFICE_IDS返回一个VARCHAR2,ID以逗号分隔.当我运行主程序时,我得到一个"ORA-01722:无效数字"错误,这是有道理的,但我不知道我需要从这里去哪里.

我是否需要GET_OFFICE_IDS来创建主程序使用的临时表?如果是这样,是否会有性能损失?

oracle ora-01722

5
推荐指数
1
解决办法
2830
查看次数

PL/SQL:如何检测正在使用的浏览器?

我正在使用pl/sql htp包来创建简单的网页.现在我需要根据访问页面的设备(桌面浏览器或移动黑莓客户端)使用不同的模板.

这可能在pl/sql中吗?

browser oracle plsql detect

5
推荐指数
1
解决办法
2856
查看次数

调试 PL/Python 函数

我只是练习了一些愉快的工程并编写了大量代码,而没有像往常一样测试每一步。

所以现在我有几百行代码在某处有错误......我正在使用 pgAdmin III 编写 Python 并在他们的查询工具中编写它,该工具用于正常的 SQL 查询。我不会通过我的 Python 代码,因为我不需要这个特定问题的帮助。相反,我在寻找一个工具,该工具将为我提供发生错误的 PL/Python 函数中的确切位置。要查看我想要这个的原因,以下是我收到的错误消息,并且我有调试发生错误的方法:

********** Error **********

ERROR: invalid input syntax for integer: "atextstring"
SQL state: 22P02
Run Code Online (Sandbox Code Playgroud)

postgresql debugging plpgsql plperl plsqldeveloper

5
推荐指数
1
解决办法
1401
查看次数

oracle中的序列创建

我想在oracle中创建一个序列,其中列字段(Empid)的最大值必须是序列的最小值.

下面是我在同一个stackexchange中找到的那个

create sequence mytemp_seq start with &v_Startval;
Run Code Online (Sandbox Code Playgroud)

此命令提示我输入我必须输入的列名称的最大值.

如何在不提示的情况下修复&v_startval的值,而是直接设置以下语句中的值

select max(empid) from mytemp..
Run Code Online (Sandbox Code Playgroud)

我想在下面这样做

create sequence mytemp_seq start with (SELECT MAX(empid) from mytemp)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

oracle oracle10g

5
推荐指数
2
解决办法
936
查看次数

PLSQL:修改过程的IN参数

我有这样的程序:

Procedure(var1 IN VARCHAR2, var2 IN VARCHAR2 ... )
---lines of code---
Run Code Online (Sandbox Code Playgroud)

---在这个程序里面我想做下面的事情

var1 := filter(var1); -- filter & assign to the same variable
....
....
--do something with var1
Run Code Online (Sandbox Code Playgroud)

但问题是无法将IN参数修改为过程作为常量.我能想到的唯一选择是创建/声明一个新的局部变量并为其分配修改后的IN参数并在后续代码中使用它.但这导致了笨拙的代码,因为有近30个IN参数.所以我需要为每个参数创建30个新变量.

需要您的帮助来更改plsql过程中的IN参数或上述问题的任何其他解决方法.

关心Vj

plsql

5
推荐指数
1
解决办法
5668
查看次数

oracle里面的加密

在dot net中,我可以使用dll文件,以便我的代码可以安全地使用其他代码.但有没有办法让所有人都看不到我的一些程序和触发器的代码......

oracle oracle10g

4
推荐指数
1
解决办法
434
查看次数