我写了一个包来查询表中的行.此选择查询将调用其他函数并返回表中的所有行.但是当我编写一个包含所有函数和sprocs的包时,我的带有select语句的sproc给了我一个错误,说我不能在没有语句的情况下执行.但如果我使用它然后它将只返回一行.如何使用oracle sp检索所有行?
Procedure GetData As
BEGIN
Select Jobid, JobName, JobLocation, JobCompany, X(jobid) FROM jobsTable; END GetData;
END;
Run Code Online (Sandbox Code Playgroud)
我不得不改变它以使错误消失:
Procedure GetData As
r_Jobid jobsTable.jobid%type;
r_JobName jobsTable.jobName%type;
r_JobLocation jobsTable.jobLocation%type;
r_temp varhar2(10);
BEGIN
Select Jobid, JobName, JobLocation, JobCompany, X(jobid)
INTO r_jobid, r_jobName, r_jobLocation, r_temp
FROM jobsTable;
END GetData;
END;
Run Code Online (Sandbox Code Playgroud) 我想更新Oracle表中的以下过程,但它抛出错误:
CREATE OR REPLACE PROCEDURE update_keywords (aKEYWORD IN VARCHAR2, aCOUNT IN NUMBER)
AS BEGIN
update searchable_keywords
set KEYWORD =:new.aKEYWORD or COUNT =:new.aCOUNT
where KEUWORD_ID = : old.KEYWORD_ID;
END;
Run Code Online (Sandbox Code Playgroud)
这是我的程序.我想searchable_keywords用keyword_id(主键)更新表中的关键字和计数,但它抛出错误如下:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/4 PL/SQL: SQL Statement ignored
4/17 PLS-00049: bad bind variable 'NEW.AKEYWORD'
4/31 PL/SQL: ORA-00933: SQL command not properly ended
4/41 PLS-00049: bad bind variable 'NEW.ACOUNT'
Run Code Online (Sandbox Code Playgroud)
你能帮我解决一下这个问题吗?
我想创建这样的表:
create table ttt
(
col1 varchar2(2),
col2 varchar2(2),
col3 varchar2(2),
col4 varchar2(2),
col5 varchar2(2)
);
Run Code Online (Sandbox Code Playgroud)
使用此过程,但它不起作用.你能救我吗?
declare
str varchar2(200);
i int;
begin
for i in 1 .. 5 loop
begin
str:=’str’||i||”;
end;
end loop;
execute immediate ‘create table t1 (“str” varchar2(2) )’;
end;
/
Run Code Online (Sandbox Code Playgroud)
提前致谢.
因此,我们有一个运行Win 2008 R2服务器的Oracle 11g实例.虽然我知道甲骨文和微软的关系可能并不太好,但它已经到了甲骨文大约50%的内存消耗,并且永远不会释放它的情况,所以我不时会将服务退回到冲洗它.我一直试图找到是否有一种替代方法可以在不必反弹服务的情况下以某种方式释放这种记忆,但到目前为止还没有运气.
有没有其他人遇到过这种情况,并找到了通过其他手段冲洗内存的方法?任何输入将不胜感激!
以下是此实例上spfile/parameters的当前分配...如果您有基于可用内存的任何建议设置,请告诉我您需要的内容,我可以提供其他信息.非常感谢您对此的意见.
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target integer 10368319488
memory_target integer 10368319488
parallel_servers_target integer 64
pga_aggregate_target integer 0
sga_target integer 0
Run Code Online (Sandbox Code Playgroud) 这有可能吗?我在'网上看到了关于指示应该使用存储过程的引用,但是我有一个脚本需要将gzip压缩数据插入到数据库中.如果有的话,我怎么能这样做呢?谢谢
我怎样才能使用相同的文件(如ABC.txt)来编写UTL_FILE.
目前正在发生的事情是,当我试图写上ABC.txt一个条目被删除或替换为最新条目.我希望我所有的参赛作品都在场.我使用的是Oracle 10 g PL/SQL.
我有一个包,我正在调用一个过程来向表中插入记录,我调用此过程两次,间隔为2分钟使用 sys.DBMS_LOCK.sleep (<>);
我面临的问题是我的呼叫形式,它来自应用程序仍然打开,直到插入完成.
我怎样才能确保当我提交我的页面和页面时应该关闭,插入应该在后端发生某种异步调用.在数据库程序中是否有任何异步关键字来执行此类活动?
谢谢
更新
putData(empNo,EmpName);
sys.DBMS_LOCK.sleep (<>);
putData(empNo,EmpName);
Run Code Online (Sandbox Code Playgroud)
由于上述原因,我的页面一直保持到第二个程序结束.我想在第一个程序完成或用户提交页面时立即关闭页面.
更新2
DBMS_JOB.SUBMIT(ln_dummy, 'begin putData('||empNo,EmpName||'); end;');
Run Code Online (Sandbox Code Playgroud)
给我编译错误错误的参数数量调用提交.
我该如何解决这个问题?
可能重复:
如何在select语句中使用索引?
让我具体一点:
我在oracle 10g数据库中创建了某些表x和y.我已经在表格中索引了某些列,以便使用CREATE INDEXstatement 更快地检索记录.
我有Java代码访问这些表以使用预准备语句对象检索数据.但是我不清楚如何从这些索引表中检索数据.请帮忙.代码片段非常有用.
使用Oracle 10G
比方说,我有一个包含三个字段的表,我想要一个查询,它选择每个列不为空的计数.字段名称
----------------------------------
| strTest1 | strTest2 | strTest3 |
----------------------------------
Run Code Online (Sandbox Code Playgroud)
我知道如何分别计算每个人的数量:
select count(*) from tablename where strTest1 is not null
Run Code Online (Sandbox Code Playgroud)
但是我想知道是否可以在一个查询中对所有3个字段执行此操作.
谢谢
我有以下使用codeigniter活动记录功能的查询表,
select * from user where user_id!=10
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以下代码
$condition=array(
'userr_id!='=>2,
);
$this->db-get('userd',$condition);
Run Code Online (Sandbox Code Playgroud)
其返回数据库错误。如何使用活动记录功能进行查询?