标签: sql

在SYS_REFCURSOR中执行动态sql语句

是否可以在plsql中执行动态的sql并将结果返回到sys_refcursor?我已经粘贴了我的尝试,但dosnt缝合工作,这是我的java应用程序的错误

ORA-01006:绑定变量不存在ORA-06512:在"LIVEFIS.ERC_REPORT_PK",第116行ORA-06512:在第1行

但这可能是由java误解的东西,一切接缝编译精细soo我不确定.

 procedure all_carers_param_dy (pPostcode in carer.postcode%type, pAge Number
                                ,pReport out SYS_REFCURSOR) is
  begin
    declare
      lsql  varchar2(500) :='SELECT c.id FROM carer c, cared_for cf,carer_cared_for ccf '
          ||' where c.id = ccf.carer_id (+)'
          ||' AND cf.id (+) = ccf.cared_for_id';

    begin

     if pPostcode is not null and pAge <= 0 then
        lsql := lsql||' AND c.postcode like ''%''|| upper(pPostcode)||''%''';
      elsif pPostcode is null and pAge > 0 then 
         lsql := lsql||' AND ROUND((MONTHS_BETWEEN(sysdate,c.date_of_birth)/12)) = pAge';
      elsif pPostcode is not null and …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql

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

MySQL多对多查询问题

这是我的问题.我有一个名为'user_has_personalities'的多对多表.在我的应用程序中,用户可以拥有许多个性,个性可以属于许多用户.

该表有两个整数列,user_id和personality_id.

我需要做的是让所有用户至少拥有我提供给查询的所有个性(一组可变大小的个性化用户).

举个例子,我想让所有具有ids 4,5,7个性的用户,但也可以拥有其他一些个性.但我需要查询来处理可变数量的通缉个性ID,例如4,5,7,9,10.

有任何想法吗?

mysql sql many-to-many

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

高效查询多分区Postgres表

我刚刚重构了我的数据库,以便在Postgres 8.2中使用分区.现在我的查询性能有问题:

SELECT *
FROM my_table
WHERE time_stamp >= '2010-02-10' and time_stamp < '2010-02-11'
ORDER BY id DESC
LIMIT 100;
Run Code Online (Sandbox Code Playgroud)

表中有4500万行.在分区之前,这将使用反向索引扫描并在达到限制时立即停止.

分区后(在time_stamp范围内),Postgres对主表和相关分区进行完整索引扫描并合并结果,对它们进行排序,然后应用限制.这需要太长时间.

我可以解决它:

SELECT * FROM (
  SELECT *
  FROM my_table_part_a
  WHERE time_stamp >= '2010-02-10' and time_stamp < '2010-02-11'
  ORDER BY id DESC
  LIMIT 100) t
UNION ALL
SELECT * FROM (
  SELECT *
  FROM my_table_part_b
  WHERE time_stamp >= '2010-02-10' and time_stamp < '2010-02-11'
  ORDER BY id DESC
  LIMIT 100) t
UNION ALL
  ... and so on ... …
Run Code Online (Sandbox Code Playgroud)

sql postgresql performance partitioning

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

用于在grails中插入的SQL查询

如何在grails中执行普通的sql.我需要使用sql查询在数据库中插入新记录.

我们如何通过使用HQL和gorm关系来实现这一目标.

谢谢

sql grails

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

按列排序应该有索引吗?

我使用数百万条用于搜索结果的记录对表进行索引.我通过ASC或DESC订单显示结果.我的问题是列应该有索引吗?我在那张桌子上还有2个索引.性能如何通过制作或不制作该列的索引来影响?

mysql sql indexing performance sql-order-by

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

计算SQL中不同多列的出现次数

我正在尝试计算用户表中一组不同城市和国家/地区的出现次数.

该表的类似于:

userid  city       country
------  ---------  --------------
1       Cambridge  United Kingdom
2       London     United Kingdom
3       Cambridge  United Kingdom
4       New York   United States
Run Code Online (Sandbox Code Playgroud)

我需要的是每个城市和国家/地区的列表,其中包含出现次数:

Cambridge, United Kingdom, 2
London, United Kingdom, 1
New York, United States, 1
Run Code Online (Sandbox Code Playgroud)

目前我运行SQL查询来获取不同的对:

$array = SELECT DISTINCT city, country FROM usertable
Run Code Online (Sandbox Code Playgroud)

然后在PHP中将其读入数组,并循环遍历数组,运行查询以计算数组中每行的每个匹配项:

SELECT count(*) FROM usertable
WHERE city = $array['city']
AND   country = $array['country']
Run Code Online (Sandbox Code Playgroud)

我假设我对SQL缺乏掌握的东西 - 这样做的正确方法是什么,最好没有PHP的干预?

sql

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

失败SQL查询磁盘空间不足

消息1101,级别17,状态10,行12由于文件组"DEFAULT"中的磁盘空间不足,无法为数据库"TEMPDB"分配新页面.通过删除文件组中的对象,向文件组添加其他文件或为文件组中的现有文件设置自动增长来创建必要的空间.

这用简单的英语意味着什么?

sql sql-server join view tempdb

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

PHP中的SQL解析器?

UPD:管理员更改了标题,我找到了解决方案:http: //code.google.com/p/php-sql-parser/


我正在尝试修改SQL数组的SQL查询.

例如: SELECT col_name FROM tbl_name WHERE col_name> 0;

必须返回类似的内容:

array(

'table' => 'tbl_name',

'value' => array('col_name'),

'where' => array('col_name > 0')

);
Run Code Online (Sandbox Code Playgroud)

我发现了这个.你知道更好的解决方案吗?

php mysql sql orm

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

postgres:查询'select*from user'究竟在做什么?

在psql中,如果有人输入'select*from user',你会得到类似下面的内容:

 current_user 
--------------
 postgres
Run Code Online (Sandbox Code Playgroud)

在这种情况下用户是什么?

sql postgresql

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

带有WHERE EXISTS的SQL UPDATE语句

我试图写一个更新日期的查询,只有当我更新组的LINE_CD为50.我会这样做吗?

UPDATE EMPLOYER_ADDL  
SET EMPLOYER_ADDL.GTL_UW_APPRV_DT = EMPLOYER_ADDL.DNTL_UW_APPRV_DT 
WHERE EXISTS
    ( 
      SELECT EMP_PLAN_LINE_INFO.LINE_CD
      FROM EMP_PLAN_LINE_INFO
      Where EMP_PLAN_LINE_INFO.GR_NBR = EMPLOYER_ADDL.GR_NBR and
       EMP_PLAN_LINE_INFO.LINE_CD = 50
     )
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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