小编Joh*_*yle的帖子

如何在Oracle中声明和显示变量

我想在Oracle中声明并显示一个变量.

在T-SQL中我会做这样的事情

DECLARE @A VARCHAR(10) --Declares @A
SELECT @A = '12' --Assigns @A
SELECT @A --Displays @A
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Oracle中执行此操作.

oracle plsql oracle11g

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

在oracle11g中创建参数化视图

我有一个很大的查询与嵌套和左连接和Ineed创建一个视图,以便不从应用程序运行它.问题是我需要日期范围和其他一些字段作为输入参数,因为它会因每个请求的前端而异.我只是查了一下并看到一些帖子指的是使用SYS_CONTEXT进行参数化视图,并且需要确切地知道如何创建视图,例如使用2个参数 - fromdate, todate以及我如何从应用程序调用视图.

仅供参考我使用grails/groovy来开发应用程序.这是我想要创建视图的查询..

 select 
    d.dateInRange as dateval,
    eventdesc,
    nvl(td.dist_ucnt, 0) as dist_ucnt
from (
    select 
        to_date(fromdate,'dd-mon-yyyy') + rownum - 1 as dateInRange
    from all_objects
    where rownum <= to_date(fromdate,'dd-mon-yyyy') - to_date(todate,'dd-mon-yyyy') + 1
) d
left join (
    select 
        to_char(user_transaction.transdate,'dd-mon-yyyy') as currentdate,
        count(distinct(grauser_id)) as dist_ucnt,
        eventdesc 
    from
        gratransaction, user_transaction 
  where gratransaction.id = user_transaction.trans_id and 
  user_transaction.transdate between to_date(fromdate,'dd-mon-yyyy') and to_date(todate,'dd-mon-yyyy') 
    group by  to_char(user_transaction.transdate, 'dd-mon-yyyy'), eventdesc 
) td on td.currentdate = d.dateInRange order by d.dateInRange asc
Run Code Online (Sandbox Code Playgroud)

oracle views oracle11g

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

将唯一索引更改为唯一索引

我有一些非独特的约束,我想改变成唯一约束(业务规则自数据模型制定以来已经改变).有没有办法在删除和重新创建作为唯一约束的情况下执行此操作?我在想这个alter constraint命令会有一个选项,但我没找到任何东西.

谢谢!!

oracle constraints oracle10g unique-constraint

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

在列上使用distinct并在另一列上执行order by会产生错误

我有一个表:abc_test,列n_num,k_str.

此查询不起作用:

    select distinct(n_num) from abc_test order by(k_str)
Run Code Online (Sandbox Code Playgroud)

但是这个有效:

    select n_num from abc_test order by(k_str)
Run Code Online (Sandbox Code Playgroud)

DISTINCT和ORDER BY关键字如何在内部工作,以改变两个查询的输出?

sql oracle distinct sql-order-by oracle9i

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

如何将数据从一个数据库/表复制到另一个数据库/表

我使用以下文档编写了以下查询:Oracle Documentation将一些数据从生产服务器上的数据库/表复制到Sandbox服务器上的数据库/表.

COPY FROM username1/passwd1@<production_IP> to username2/passwd2@<sandbox_IP> INSERT TABLE_C (*) USING (SELECT * FROM TABLE_C WHERE COL_A = 4884);

但是,我经常遇到Connection failed错误.查询有什么问题吗?

oracle oracle11g

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

Oracle 11g:我可以创建一个只存储1个字节的数字列吗?

我需要一个数字列作为我正在处理的事情的指标,但我不希望它每个记录占用超过一个字节.如果我使用NUMBER(1),这会满足我的要求吗?

oracle byte numbers oracle11g

8
推荐指数
1
解决办法
7350
查看次数

用于CURRENT_TIMESTAMP的数据库不可知SQL

我目前正在使用Oracle,但大多数SQL都是db不可知的.一个例外是CURRENT_TIMESTAMP在MSSQL中失败.是否有可能为此移动到更便携的语法?

sql database-agnostic

8
推荐指数
1
解决办法
1478
查看次数

单个SQL SELECT从一个表行返回多个行

我们有一个表格形式:

ID,Value1,Value2,Value3
1,2,3,4
Run Code Online (Sandbox Code Playgroud)

我们需要将其转化为.

ID,Name,Value
1,'Value1',2
1,'Value2',3
1,'Value3',4
Run Code Online (Sandbox Code Playgroud)

在一个SELECT语句中是否有一种聪明的方法(即没有UNION)?列名称Value1,Value2和Value3是固定且常量的.

该数据库是oracle 9i.

sql oracle select plsql oracle9i

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

安装Oracle 11g后连接到SQL*Plus时应输入什么用户名和密码?

我在Windows 7上安装了Oracle 11g

当我启动sqlplus时,它会询问我的用户名和密码

任何人都可以告诉我需要插入什么用户名,当我尝试输入任何密码时,它不允许我输入单个字母.有原因吗?

oracle sqlplus oracle11g

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

使用SQL*Loader更新表中的列?

我编写了一个具有以下查询的SQL脚本.查询工作正常.

update partner set is_seller_buyer=1 where id in (select id from partner 
where names in 
(
'A','B','C','D','E',... // around 100 names.
));
Run Code Online (Sandbox Code Playgroud)

但现在我不想在查询中写入大约100个名称,而是想从CSV文件中获取所有名称.我在互联网上阅读了关于SQL*Loader但我对更新查询没有太多了解.我的csv文件只包含名称.

在此输入图像描述

我试过了

  load data
  infile 'c:\data\mydata.csv'
  into table partner set is_wholesaler_reseller=1
  where id in (select id from partner 
  where names in 
  ( 
  'A','B','C','D','E',... // around 100 names.
  ));
  fields terminated by "," optionally enclosed by '"'         
  ( names, sal, deptno )
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?提前致谢.

sql oracle sql-loader

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