我正在使用数据分析工具,我的要求是接受用户的值,将其作为参数传递并将其存储在表中.非常直截了当所以我坐下来写这个
create or replace
procedure complex(datainput in VARCHAR2)
is
begin
insert into dumtab values (datainput);
end complex;
Run Code Online (Sandbox Code Playgroud)
我使用以下语句在SQL Developer中执行了此操作
begin
complex('SomeValue');
end;
Run Code Online (Sandbox Code Playgroud)
它工作正常,并将值插入表中.但是,数据分析工具不支持上述语句,因此我使用了函数.以下是函数的代码,它编译.
create or replace
function supercomplex(datainput in VARCHAR2)
return varchar2
is
begin
insert into dumtab values (datainput);
return 'done';
end supercomplex;
Run Code Online (Sandbox Code Playgroud)
我再一次尝试在SQL Developer中执行它,但是我在执行以下代码时无法在查询中执行DML操作
select supercomplex('somevalue') from dual;
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 我需要一个可以在SQL Developer中运行上述函数的语句,或者 - 一个可以执行我正在寻找的函数的函数,可以由select语句执行. - 如果我不能做我要问的事情,我想要一个理由,所以我可以告诉我的经理,因为我很新(就像一周大了?)到PL/SQL,所以我不知道规则和语法.
PS我多么希望这是C++甚至是Java :(
编辑
我需要在SQL Developer上运行该函数,因为在DMine(它是工具)中运行它之前,为了测试它是否有效.SQL中的任何无效内容在DMine中也是无效的,但不是相反.
感谢您的帮助,我了解情况以及为什么它是非法的/不推荐的
嗨,我刚刚安装了Pentaho Data Integration v.5.01,我正在尝试连接数据库.但是,当我收到错误(粘贴在下面)时,我无法测试连接.
我也在系统上安装了JDK 1.7,但是我似乎无法在任何地方找到ojdbc14.jar.
我下载并将其粘贴在pentaho的\ lib文件夹中,但我仍然得到同样的错误.
解决这个问题的任何方法?
Error connecting to database [test] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver
org.pentaho.di.core.exception.KettleDatabaseException:
Error occured while trying to connect to the database
Driver class 'oracle.jdbc.driver.OracleDriver' could not be found, make sure the 'Oracle' driver (jar file) is installed.
oracle.jdbc.driver.OracleDriver
at org.pentaho.di.core.database.Database.normalConnect(Database.java:415)
at org.pentaho.di.core.database.Database.connect(Database.java:353)
at org.pentaho.di.core.database.Database.connect(Database.java:306)
at org.pentaho.di.core.database.Database.connect(Database.java:294)
at org.pentaho.di.core.database.DatabaseFactory.getConnectionTestReport(DatabaseFactory.java:84)
at …Run Code Online (Sandbox Code Playgroud) 我需要以一种格式从SAP ABAP系统中提取数据,然后将其加载到Oracle数据库中(xlsx,csv,dmp ..等)
提取数据后,我将使用Pentaho将其上传到Oracle数据库.
有没有办法从SAP提取数据?我还需要自动化它(提取),但现在这不是太大的问题,我可以稍后解决/担心这一部分.
如果不可能这样做,解释为什么会有所帮助!
这是我的基本查询
select distinct a.projects , case when(billing_fy!=0)
then(select round(((sum(cost_project)/(sum(billing_fy)/((10/12)*365)))),2)
from table1 b
where a.projects = b.projects
group by projects)
else 0 end as "WIP days outstanding"
from table1 a
Run Code Online (Sandbox Code Playgroud)
它会产生以下输出
Projects WIP days outstanding
History - AURANGABAD - NASIK 0
History - PUNE - MUMBAI 0
History - NASIK - MUMBAI 89.92
History - SASAGRAM - MUMBAI 0
History - SASAGRAM - MUMBAI 1386.52
History - AURANGABAD - MUMBAI 83.25
Run Code Online (Sandbox Code Playgroud)
现在我需要的是显示除第4行以外的所有行.我首先使用case语句的原因是因为如果我这样做(billing_fy!= 0子句是为了防止由除以0引起的错误)
select projects,
round(((sum(cost_project)/(sum(billing_fy)/((10/12)*365)))),2) as "WIP days outstanding"
from …Run Code Online (Sandbox Code Playgroud) 我的表有X个不同的供应商,每个供应商都有Y个目标(包括没有)
vendor varchar2(100),
location varchar2(100),
type varchar2(100),
rating varchar2(20),
control_objective varchar2(1000)
Run Code Online (Sandbox Code Playgroud)
现在我需要显示一个在以下脚本上运行的条形图
select trim(vendor)||' '||trim(location)||' '||trim(type1) AS vendor_location,
count(distinct control_objective) as "Cont Obj"
from some_table
where (Rating = 'Needs improvement' or Rating = 'Unacceptable') and
"Year" = '2011' and
Quarter = 'Q3'
group by trim(vendor)||' '||trim(location)||' '||trim(type1)
order by trim(vendor)||' '||trim(location)||' '||trim(type1);
Run Code Online (Sandbox Code Playgroud)
并产生以下输出
-----vendor_location----Cont Obj
1----Big Blue Car---------5
2----Big Red Car----------4
3----Small Pink Truck-----4
4----Small White Truck----2
Run Code Online (Sandbox Code Playgroud)
问题是,可能有第五个供应商,比如说Big White Van在客观领域没有价值因此它没有显示.但我希望它显示如下.
-----vendor_location----Cont Obj …Run Code Online (Sandbox Code Playgroud) 我正在使用Oracle 11g,我需要帮助试图找出如何匹配任何长度为0的字符串.但它应该只包含0.
i.e.
0 - Valid
00 - Valid
0000 - Valid
0010000 - Invalid
000000000- Valid
Run Code Online (Sandbox Code Playgroud)
一直试图找到一些帮助,但无济于事.