我从Linux C Shell调用SQL*Plus:
sqlplus username/password @file.sql var1 var2 var3
如果我传递一个字符串var1,这个字符串可以多长时间?
它是由操作系统管理的吗?在这种情况下:
Linux version 2.6.9-100.ELsmp (mockbuild@x86-010.build.bos.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-11)) #1 SMP Tue Feb 1 12:17:32 EST 2011
更新:经验测试产生以下结果:
我想我会sqlldr用来克服这一点.
可以这样做吗?
$ sqlplus -s user/pass "select 1 from dual"
要么
$ echo "select 1 from dual" | sqlplus -s user/pass
我知道我可以放入select 1 from dual文件并执行此操作:
$ sqlplus -s user/pass @myFile.sql
但我想知道是否真的有必要创建一个文件只是为了满足sqlplus
使用SQL Plus,您可以从命令行使用"@"运算符运行脚本,如下所示:
c:\>sqlplus username/password@databasename @"c:\my_script.sql"
Run Code Online (Sandbox Code Playgroud)
但是,是否可以只运行具有类似语法的单个命令,而无需单独的脚本文件?如:
c:\>sqlplus username/password@databasename @execute some_procedure
Run Code Online (Sandbox Code Playgroud)
我对此感兴趣,因为我想编写一个只执行命令的批处理文件,而不会生成一堆两行".sql"文件.
如何通过终止会话来停止正在运行的SELECT语句?
该命令根据SELECT语句不断给出输出,我想在两者之间停止输出.
如何编写包含&字符的insert语句?例如,如果我想将"J&J Construction"插入数据库中的一列.
我不确定它是否有所作为,但我使用的是Oracle 9i.
我发现箭头键在sqlplus控制台上不起作用.例如,如果我按左箭头键,它显示为
SQL>^[[B
Run Code Online (Sandbox Code Playgroud)
有没有解决这个问题的解决方案?
我创建了一个带有begin/end的查询块,并希望在SQL*Plus中运行它.但是如何在命令行中运行它?
实际上代码来自某个博客,它用于搜索数据库中的文本.ABC是要搜索的文本.
set serveroutput on size 1000000
declare
TYPE QueryCurType is REF CURSOR;
query1 QueryCurType ;
cursor c1 is select owner,table_name from dba_tables where owner not in ('SYS','SYSTEM') and table_name not like '%$%';
cursor c2(t1 varchar2) is select column_name from dba_tab_columns where table_name=t1 and DATA_TYPE in ('NVARCHAR2','VARCHAR2','CHAR');
temp_var varchar2(3000);
query varchar2(3000);
begin
for tab1 in c1 loop
for col in c2(tab1.table_name) loop
query:='select '||col.column_name||' from '||tab1.owner||'.'||tab1.table_name||' where '||col.column_name||' like "ABC"';
--dbms_output.put_line('executing..'||query);
open query1 for query;
loop
fetch query1 into temp_var; …Run Code Online (Sandbox Code Playgroud) 我想抑制这些行的输出如下
old 9: AND FROMDAT <= TO_DATE('&duedate', 'YYYYMMDD')
new 9: AND FROMDAT <= TO_DATE('20091031', 'YYYYMMDD')
old 10: AND TODAT > TO_DATE('&duedate', 'YYYYMMDD')
new 10: AND TODAT > TO_DATE('20091031', 'YYYYMMDD')
Run Code Online (Sandbox Code Playgroud)
我怎么能实现这个目标?
TERM OFF并且FEEDBACK OFF已经设置.
使用SqlPlus for Oracle,如何将查询的输出保存在文件中但不在终端/提示符上显示.
我有一个.sql文件,这是一堆oracle pl/sql命令,我想创建一个shell脚本来运行这些命令.
假设这user/pass@server是我的凭据.执行此类任务的shell脚本是什么?