小编Luk*_*zda的帖子

PL/SQL脚本抛出错误

我正在使用PLSQL创建一个基于查询另一个表来更新表的过程,并且我正在使用循环来实现此目的.对于测试,我暂时不使用过程代码,只是尝试使下面的脚本工作.但它不断抛出错误,包括"遇到符号"文件结束""或"无效的SQL语句",基于小调整.我哪里错了?

DECLARE CURSOR cur IS
    SELECT * FROM Summary;
BEGIN
FOR rec in cur
LOOP
UPDATE Award
SET monthly_sales = (
   SELECT COUNT(*)
   FROM Sales
   WHERE employee_id = rec.employee_id
     AND to_char(Sales.SALES_DATE,'YY/MM')=to_char(SYSDATE,'YY/MM')
)
WHERE Summary.employee_id = rec.employee_id
END LOOP
END;
/
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql stored-procedures

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

Oracle:如何更新表中的"过时"日期?

我们的用例:

对于表格USERS:

如果用户处于非活动状态(列)超过该分钟,则更新所有行('N'列的设置值ACTIVE).'LAST_VISIT'60

Google帮助我找到了如何获取db中的当前时间(我使用Oracle):

SELECT sysdate FROM dual;
Run Code Online (Sandbox Code Playgroud)

然后我找到了如何找到两个日期之间的分钟差异的方法:

SELECT(date1 - date2)*1440
Run Code Online (Sandbox Code Playgroud)

看起来有点难看......但还可以.

现在,我正在努力将所有这些结合在一起:

UPDATE USERS u 
SET ACTIVE='N' 
WHERE  SELECT((SELECT sysdate FROM dual) - u.LAST_VISIT)*1440 >60;
Run Code Online (Sandbox Code Playgroud)

能否请您查看我的最终查询.

好吗?或者,也许,可以优化它?

sql database oracle oracle11g sql-update

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

使用LIKE或MATCH的SQL查询

我有一个包含13列的表,其中有5列包含让我们说的字符串数据或VARCHAR数据.

现在我有一个字符串让我们说"abc".

我想编写一个sql查询来获取在这5列中包含此"abc"字符串的所有行."abc"可以是列数据的一部分列的数据.

我用过LIKE功能

SELECT * FROM table WHERE col1 OR col2 OR col3 OR col4 OR col5 LIKE '%abc%';
Run Code Online (Sandbox Code Playgroud)

但它没有起作用n回到了所有的行.

MATCH也不知道如何使用函数,我在sql中表现不错.任何人都可以帮忙.

mysql sql

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

分组依据 - 如何检索相关字段?

下面的SELECT语句的预期结果:

('2015-01-15',110,'John')
Run Code Online (Sandbox Code Playgroud)

下面有一些代码可以帮助我...

 DECLARE @MyTableVar table(
arrival_date date,
nb_sales int,
name varchar(255)
)

insert into @MyTableVar values
('2015-01-15',121,'James'),
('2015-01-15',110,'John')

select 
arrival_date,
MIN(nb_sales) as nb_sales,
name <<-- What should I put knowing I can't put MIN or MAX ?
from @MyTableVar
group by arrival_date
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server greatest-n-per-group

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

PHP和MySQL:进行化学反应

我有2个表1- tbl_reaction这样:

?????????????????????????????????????????
? id ? condition ? phenomenon ?  infor  ?
?????????????????????????????????????????
?  1 ? abcd123   ? abcd123    ? abcd123 ?
?  2 ? wer       ? wer        ? wer     ?
?????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

2- tbl_reaction_item像这样:

????????????????????????????????????
? reid ? substance ?  type   ? num ?
????????????????????????????????????
?    1 ? H2        ? income  ?   2 ?
?    1 ? O2        ? income  ?   1 ?
?    1 ? H2O       ? outcome ?   2 ?
????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

什么是mysql查询来显示反应:

收入+收入=结果

2H2 + O2 …

php mysql sql

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

创建函数时SQL Server中的Begin附近的语法不正确

我陷入了一个无法解决的小问题。

CREATE FUNCTION dbo.fntblPsmHaendlerDailyCostsinfodump(@pDateString varchar(8), @HaendlerID int, @TableName varchar(100),@CountryID int)
RETURNS table
AS BEGIN
RETURN select top 10 * from tblcountry
END
GO
Run Code Online (Sandbox Code Playgroud)

这给我一个错误-

“开始附近的语法不正确”。

我无法确定为什么会出现错误。

t-sql sql-server function sql-function

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

我想在表列序列中显示日期

CREATE TABLE tbl_Patient
  (
  PatientID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
  LabControlID AS Cast(Right(Year(getDate()),4) as varchar(4)) +'-' + RIGHT('00000' + CAST(PatientID AS VARCHAR(5)), 5),
  SequenceID AS "--Codes to display date--"
  ,First_Name varchar(50)
  ,Last_Name varchar(50)
  ,Age int
  ,Male bit
  ,Female bit
  ,
  )
Run Code Online (Sandbox Code Playgroud)

我想显示月和日 - 00000并在下面的示例中显示如下.

SequenceID
----------   
Jan01-00001       
Jan01-00002  
Run Code Online (Sandbox Code Playgroud)

请指教.感谢:D

sql t-sql vb.net sql-server sql-server-2014

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

int和string之间的唯一索引

我有这个问题,我想在整数和字符串之间创建一个唯一的索引,但它给了我以下问题.我怎样才能完成这项工作?为什么不允许这样做?因为我实际上真的想要这个独特的组合,以确保数据库中没有存储双标签.

表'dbo.HostingReportGroups'中的列'Label'的类型无效,无法用作索引中的键列.

我用于此的模型如下:

public class HostingReportGroup
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    [Index("UniqueCustomerAndLabel", 1, IsUnique = true)]
    public int CustomerId { get; set; }

    [Index("UniqueCustomerAndLabel", 2, IsUnique = true)]
    public string Label { get; set; }

    public virtual ICollection<HostingReportGroupList> HostingReportGroupLists { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行的迁移包含以下代码:

public partial class adding_unique_key_to_hosting_report_group : DbMigration
{
    public override void Up()
    {
        CreateIndex("dbo.HostingReportGroups", new[] { "CustomerId", "Label" }, unique: true, name: "UniqueCustomerAndLabel");
    }

    public override void Down()
    {
        DropIndex("dbo.HostingReportGroups", "UniqueCustomerAndLabel"); …
Run Code Online (Sandbox Code Playgroud)

c# sql-server entity-framework

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

oracle ddl trigger:在删除之前创建备份表

我想用ddl触发器(在放置之前)创建一个备份表,并遇到以下问题.

发生第一次丢弃时没关系:a_backup表包含丢弃表的数据.但为什么我不能放弃另一张桌子?

ORA-01031:权限不足



create table b (x number);
Run Code Online (Sandbox Code Playgroud)

- 表B已创建.

create table a (x number);
Run Code Online (Sandbox Code Playgroud)

- 表A已创建.

create table a_backup as select * from a where 1 = 0;
Run Code Online (Sandbox Code Playgroud)

- 表A_BACKUP已创建.

create or replace trigger a_backup_tr
    before drop
    on database
begin
    IF ora_dict_obj_name <> 'A' then
    null;
    ELSIF ora_dict_obj_name = 'A'
    and ora_dict_obj_owner = 'TRANEE' then
    insert into a_backup
    select * from a;
    ELSE null;
    end if;
end;
/
Run Code Online (Sandbox Code Playgroud)

- 触发A_BACKUP_TR编译


-- 1

drop table a;
Run Code Online (Sandbox Code Playgroud)

- 表A下降.


-- 2 …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql ddl-trigger

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

SQL使用oracle SQL上的查询测试外键

说我有两张桌子

CREATE TABLE Employees (
        Employee_ID number(8),
        Employee_Name varchar2(100) NOT NULL,
        CONSTRAINT pk_EmployeeID PRIMARY KEY(Employee_ID));

CREATE TABLE Drivers(
        Driver_ID number(8) NOT NULL,
        Employee_ID number(8) NOT NULL,
        CONSTRAINT pk_DriverID PRIMARY KEY (Driver_ID),
        CONSTRAINT fk_EmployeeDataTwo FOREIGN KEY (Employee_ID) REFERENCES Employees(Employee_ID));
Run Code Online (Sandbox Code Playgroud)

如何使用查询来使用驱动程序中的外键来检查员工列表中的名称?例如

select employee_name 
from employees 
inner join drivers on employees.employee_name = drivers.employee_name; 
Run Code Online (Sandbox Code Playgroud)

哪个不起作用

sql oracle

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