我目前正在尝试实现一个bash脚本,该脚本在一天结束时运行,运行一个简单的oracle查询。该命令在Oracle中运行良好,但在.sql文件中不运行。
我尝试将所有的代码放在一行中,并添加分号。
批处理文件的内容(修改了用户/传递):
sqlplus username/password@database @set_changed.sql
set_changed.sql文件的内容:
UPDATE ris_web a
SET a.changed = 0
where exists
(
select modified_date from invn_sbs b
where b.ite
在甲骨文的sqlplus工具中,当脚本包含一个@符号时,它会加载一个带有该名称的D1脚本并执行它。我正在插入一个包含一些CSS代码的VARCHAR值,所以当它遇到一个@media查询或@keyframes时,它会尝试执行media.sql,这不是想要的效果。当我在Oracle SQL Developer窗口中执行脚本时,不会发生这种情况。
一个小的概念证明脚本:
SET DEFINE OFF
SET SQLBLANKLINES ON
SET SQLTERMINATOR OFF
SET SQLPREFIX '%'
SET SCAN OFF
DECLARE
loginId
我在使用Oracle Apex Workspace的Oracle Live SQL教程时遇到了很多问题。特别是,我被模块3卡住了:由于以下原因:插入数据: 本教程要求我运行以下代码以添加到employees表中: insert into EMPLOYEES
(name, job, salary, deptno)
values
('Sam Smith','Programmer',
5000,
(select deptno
from departments
where name = 'Development
我正在编写使用Python脚本执行SQL (Oracle)语句的代码,如下所示:
PYTHON:
with open(os.path.join(WORKING_PATH, "sql", "fetchCalendar.sql"), 'r') as
fetch_date = fetch.read()
#(Some other code)
CD = timestamp_tostring(ACTUALDATE)
print("CD:", CD)
cnnSB.cursor.execute(fetch_date, CD)
fe
我正在尝试使用bash脚本连接sqlplus。当我执行下面的脚本时,会显示SQLPLUS横幅。
脚本下面的:
$ORACLE_HOME/bin/sqlplus "/ as sysdba" <<EOF
set echo off
set heading off
spool bind.txt
select * from DBMS_LOCK_ALLOCATED where name = '$uservar';
spool off
exit
EOF
脚本的输出
oracle@DMOTA01:~/script> ./before_b
我最近从SQL2005 32位移出了一个SQL -> 64位。我在使用OraOLEDB.Oracle提供程序连接到Oracle时遇到了问题。
我能够安装Oracle 10G客户端,ODAC 64位。我还能够将链接服务器添加到Oracle实例中。我能够直接使用链接的服务器名运行查询:
SELECT top 10 *
FROM [DB0PBB0]..[DB0PBB0].[DM_CLICK]
到目前为止,它是好的,但是,问题发生时,我试图使用OPENQUERY。我尝试了以下几点:
select * from
OPENQUERY(DB0PBB0,'select * from D
我在通过.sql运行一些cx_oracle文件时遇到了实际问题。例如,如果我通过Oracle运行,下面的test_table2.sql运行得很完美。
declare
c int;
begin
select count(*) into c from user_tables where table_name = upper('TEST2');
if c = 1 then
execute immediate 'drop table TEST2';
end if;
EXECUTE IMMEDIATE 'CREATE TABLE MURRAYLR.test2
在RHEL 7上,我正在尝试访问SQL表。当我从终端运行代码时,我可以访问数据库,脚本也会按预期运行。当我从crontab运行相同的脚本时,我得到一个错误:
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
下面是我的代码:
getSequence()
{
SQLPLUS=/oracle/app/oracle/produc
所以我想从Visual Studio中执行一个oracle plsql脚本。我安装了,并在连接到oracle db实例的VS2010中打开了一个新的查询窗口。下面是我正在尝试运行的示例脚本:
DECLARE
BEGIN
DBMS_OUTPUT.put_line ('Hello World!'); --tried various types of statements here
END;
无论我尝试将什么放入begin/end块的主体中,我都会得到以下结果:
ERROR
ORA-06550: line 4, column 3:
PLS-00103: Encountered the
我有一个由SQL*Plus执行的SQL脚本,它需要与Oracle 10g和Oracle 11g一起运行。
该脚本为一个在11g之前不存在的包提供授权:
GRANT EXECUTE ON sys.dbms_result_cache TO my_user;
我想避免10g的异常,因为我想对脚本中的其他异常作出反应。
一种方法是使用和
BEGIN
$IF dbms_db_version.ver_le_10 $THEN NULL; $ELSE
EXECUTE IMMEDIATE 'GRANT EXECUTE ON sys.dbms_result_cache TO my_user&
我有一个SSIS包,我需要在其中执行具有执行SQL任务的MERGE语句。我需要在Oracle数据库和SQL Server 2012数据库上执行此操作。我的问题是,如何才能将受影响的行数作为ResultSet保存在SSIS包中的变量中?我不需要知道是updated还是inserted,也不想在Oracle上创建过程,因为合并是动态的,并且在包中通过变量中的表达式进行计算。我只想拿回受影响的行的值。
附言:如果我不能使用执行SQL任务,我至少可以使用一个脚本来运行合并吗?问题是,据我所知,Oracle上的ExecuteNonQuery()不会返回受合并影响的行。而且我找不到SQL Server的任