我有一个创建预定事件的 SQL 脚本:
CREATE EVENT "Daily_1200PM"
SCHEDULE "Daily_1200PM" START TIME '12:00' EVERY 24 HOURS
HANDLER
begin
-- Blah blah, do some stuff here
end;
Run Code Online (Sandbox Code Playgroud)
我想删除此事件(如果存在)。我知道我可以通过以下方式删除事件:
DROP EVENT "Daily_1200PM"
Run Code Online (Sandbox Code Playgroud)
但是对于某些数据库,该事件实际上并不存在,因此会引发错误。
如何仅在事件存在时删除该事件?
我正在使用 .Net 中的 ODBC 命令对象构建查询,并传入多个参数。对 SQL Anywhere 执行查询时,出现以下错误。(相同的代码适用于 SQL Server)。
[System.Data.Odbc.OdbcException] = {"ERROR [07002] [Sybase][ODBC 驱动程序][SQL Anywhere]没有足够的主机变量值"}
命令对象添加了与查询中的占位符 ('?') 相同数量的参数。以下是未通过测试的简单查询和 C# 代码。
用于填充宿主变量的 C# 代码
String queryText= @"DECLARE @loanuseraddress varchar(40), @loanid decimal Set @loanid = ? Set @loanuseraddress = ? select * from Loan_assignments where Loan_id = @loanid"
OdbcConnection connection = new OdbcConnection(request.ConnectionString);
OdbcCommand command;
command = new OdbcCommand(queryText, connection);
OdbcParameter param1 = new OdbcParameter("@loanid", OdbcType.Decimal);
param1.Value = request.Loan.LoanNumber;
command.Parameters.Add(param1);
OdbcParameter param2 = new OdbcParameter("@loanuseremployer", dbcType.VarChar);
param2.Value = appraisalCompanyUpdate.LoanUserEmployer;
if …Run Code Online (Sandbox Code Playgroud) 以下存储过程是基于搜索类型(id,数字,名称)和搜索文本('samsung galaxy'或任何其他等等)进行产品搜索.让我们假设
search_type是name, search_text是'samsung galaxy'
基于这个条件,我写了以下存储过程.
create or replace procedure product_search(
search_type IN varchar2,
search_text IN varchar2,
status IN varchar2)
is
cursor c1 is
SELECT p.pm_oid , p.item_name
FROM prism_item_hierarchy p
WHERE
CASE search_type
WHEN 'id' THEN p.pm_oid LIKE '%'||search_text||'%'
WHEN 'name' THEN Lower(p.item_name ) LIKE '%'||search_text||'%'
ELSE p.item_number LIKE '%'||search_text
END;
BEGIN
open c1;
-- fetch c1 into
close c1;
END;
Run Code Online (Sandbox Code Playgroud)
但是我在条件情况下得到以下错误:
[Error] ORA-00905 (18: 49): PL/SQL: ORA-00905: missing keyword
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何解决这个问题,即使你提出了另一种方法来解决这个问题,它会很棒.谢谢
TL; DR: 我的POS使用Sybase Advantage数据库服务器存储我的销售数据,我想访问它,但我只有备份文件.
我拥有一家拥有"先进"POS软件的小型企业,该软件拥有我所有销售数据的唯一副本.他们有一些备份计划,但他们不愿透露任何细节.还有一个自动每日本地备份例程,但由于这是一个POS并且有关于删除数据的某些法律,我不允许(也不需要软件)从备份恢复甚至检查它是否有效.当他最后一次从备份恢复时,我问了支持人员,他说"别担心,我们不需要它".
当然,我很担心.
在这一点上我会注意到法律要求我保留这些数据,如果我因任何原因未能这样做,我个人可能面临数百万的巨额罚款.我想避免这种情况.
除了保存数据,并验证备份包含我需要保留的数据之外,我还想创建报告.POS供应商声称它可以创建我需要的任何报告,但是每次我向他们询问报告时,它都包含错误的数据,崩溃,导出不可读的文件(他们的回复是文件很好) ,我的[插入相关文件阅读器]已被破坏),或者根本就不存在(他们的回复通常类似于"你无论如何都不需要该报告").我问过自己访问数据库的副本,他们说他们不能允许这样做.我唯一的办法就是为开发和测试报告支付数万美元.你问我想要什么报告?
SELECT * FROM SALES
Run Code Online (Sandbox Code Playgroud)
要创建这个简单的报告,我需要将我的数据从Sybase Advantage数据库服务器备份文件迁移到我可以使用的格式,例如MySQL数据库,但我发现的所有迁移工具都需要访问工作的数据库服务器.
如何从这些备份中获取数据?
sybase advantage-database-server sqlanywhere database-restore database-backups
我没有安装 SQL Anywhere。我尝试过jconn4和jconn3,我也尝试过jodbc4,但它们都不能满足我的需要。
我需要一个用于 Sybase 的纯 java、类型 4、jdbc 驱动程序,据我所知,它是 sajdbc.jar。但无处可见。我非常需要这个文件。有谁可以告诉我在哪里可以下载这个文件吗?
我无法使用此代码插入值:
insert into t_category_values (CategoryCode,
CategoryValueCode, CategoryValue) values(2, 1, 1);
Run Code Online (Sandbox Code Playgroud)
错误消息
no primary key
Run Code Online (Sandbox Code Playgroud)