我试图用ODP.NET编写C#代码来调用包中的函数.我收到以下两个错误:
ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in call to INSERT_FUNC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ORA-06550: line 1, column 7:
PLS-00221: 'INSERT_FUNC' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Run Code Online (Sandbox Code Playgroud)
我OracleCommand的设置如下:
cmd.CommandText = "PKG_NAME.INSERT_FUNC";
cmd.CommandType = CommandType.StoredProcedure;
Run Code Online (Sandbox Code Playgroud)
ReturnValue参数吗?我见过很多论坛讨论了在对象上添加ReturnValue参数的必要性.OracleParameterOracleCommand我将不胜感激任何建议.
CREATE OR REPLACE
PACKAGE BODY pkg_name IS
FUNCTION insert_func (
i_description IN tableName.description%TYPE,
i_theme IN …Run Code Online (Sandbox Code Playgroud) 我正在使用CodeIgniter和OCI10驱动程序,我在使用绑定时将度数字符(°)插入数据库时遇到问题.但是错误消息为空
Message: Query ' INSERT INTO T1 (ID, TEXT) VALUES (1, 'text with °') ' was not executed; returned error: ''.
Run Code Online (Sandbox Code Playgroud)
当我使用SQL Relay或者使用SQL Developer插入manualy时,它很好用.此外,当我不使用绑定时,它被正确插入.
我在Codeigniter中使用oci8作为我的数据库驱动程序.使用以下调用存储过程的代码时给出了错误:
$this->db->call_function('update_letter_body', $body_letter, $insert_id);
Error : This feature is not available for the database you are using.
Run Code Online (Sandbox Code Playgroud)
应该怎么做才能使这项工作?
我试图设置一个超过4000个字符的值,这似乎不能直接查询,似乎codeigniter不支持调用oracle的函数.有什么建议 ?
前downvoting或接近要求时这个问题,请看到这个问题是关于JDK 7中没有6,它具有不受任何重复的线程解决的第二个问题,"Q2"这个问题是关于4不仅2个的java.exe实例.谢谢!
我刚刚安装了Oracle的Java SE JDK(64位),这导致了以下目录布局,并且不知何故有两个 JRE:
C:\Program Files\Java\
\jdk1.7.0_40
\jre
\jre7
Run Code Online (Sandbox Code Playgroud)
我现在是四个 java.exe可执行文件的自豪拥有者:
C:\Program Files\Java\jdk1.7.0_40\bin\java.exe
C:\Program Files\Java\jdk1.7.0_40\jre\bin\java.exe
C:\Program Files\Java\jre7\bin\java.exe
C:\Windows\System32\java.exe
Run Code Online (Sandbox Code Playgroud)
Q1:我应该将哪一个放入我的搜索路径来执行基于Java的应用程序?
Q2:我是否需要将无限制JCE策略文件放入我的搜索路径中相应JRE的安全子目录中,或者也放入所有其他目录中才能正常工作?
我在apex应用程序上有一些按钮,单击这些按钮即可执行自定义PL / SQL代码。它们的名称为APPLY(确认)和CHANGE(计数正确)。我需要它,以便当单击APPLY时,它重定向到同一页面(已实现PL / SQL代码),而当单击CHANGE时,它重定向到另一页面(已实现PL / SQL代码)。
我尝试通过“当按钮被按下时”和/或“条件类型:请求=表达式1”为“后处理”设置条件分支,表达式1的值等于“ APPLY”或“ CHANGE”。我无法(沮丧地)以这种方式产生想要的结果。APEX说提交的页面“请求”带有被单击的名称按钮(即,当单击“应用”时单击“应用”),但是我无法做到这一点。
我现在正在寻求为“应用”和“更改”(它们当前分别为“执行PL / SQL代码”和“提交页面”)的动态操作中添加一个“真实操作”,该操作执行一个Javascript代码,重定向到应用程序中所需的页面。
我认为该代码将利用这样的东西
"apex.navigation.redirect('f?p=928:35:4081364075246::NO:::');"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,第35页是我希望“更改”按钮重定向到的页面。
我不像我想的那样精通JavaScript,因此,希望能对我的方法学提供任何帮助。
问题:Linux CentOS/Oracle 11g/InstantClient/PHP 5.3.3
错误:oci_connect():OCIEnvNlsCreate()失败.你的系统有问题 - 请检查是否设置了ORACLE_HOME和LD_LIBRARY_PATH并指向正确的目录
phpinfo()相关部分:



如您所见,环境变量已正确设置,我可以在带有的页面上回显它们getenv().我还检查了读取权限,我可以从网页上读取这些目录中的所有文件.客户端库文件(我安装并重新安装两次)完全安装.这些库是可读和可加载的.
ldd没有显示任何错误.
这是来自php文件的调用:
$test = getenv('LD_LIBRARY_PATH')." ".getenv('ORACLE_HOME');
$this->dbconn = oci_connect("myuser","mypassword", "localhost/orcl") or die("<b>Connection Failed: $test </b>").oci_error();
Run Code Online (Sandbox Code Playgroud)
我尝试了通过谷歌搜索找到的所有技巧,没有任何效果.
任何帮助表示赞赏.
什么时候使用oci_fetchover有好处oci_fetch_array?oci_fetch_array返回实际数组,但oci_fetch只是将获取的内存存储在其内部缓冲区的某处。
我应该了解两者之间的性能差异吗?
我在Visual Studio 2013中安装了Windows 8.1 64位.我安装了最新的Oracle ODAC 12c第3版32位测试版,声称支持EF 6.当我将ADO.NET实体框架添加到我的项目并选择我的Oracle时数据连接,它不允许我选择Entity Framework 6.0版本.它选择了Entity Framework 5.x,版本6.x显示为灰色.它表示"无法为您的数据连接找到与最新版本的实体框架兼容的实体框架数据库提供程序".这是为什么?
我试图使用ODP.NET运行查询.查询在LIKE运算符右侧的文字中有一个参数.这是我的代码:
string query = @"select col1,col2,col3 from table where name like '%:cus_name%'";
OracleParameter p1 = new OracleParameter();
p1.OracleDbType = OracleDbType.Char;
p1.Value = name;
p1.ParameterName = "cus_name";
OracleCommand sql = new OracleCommand(query, conn);
sql.Parameters.Add(p1);
OracleDataReader ora = null;
Run Code Online (Sandbox Code Playgroud)
我收到"无效参数"错误.好心提醒.
我写了一个存储过程SP_DEMAND_QRY.如果表中只有几个匹配的行(5或6),则会生成正确的值Demand.但是如果该表包含更多匹配的行(> 6),那么当我执行它时会出现此错误:
Error:
-------
ORA-19011: Character string buffer too small
ORA-06512: at line 7
Run Code Online (Sandbox Code Playgroud)
程序是:
create or replace PROCEDURE SP_DEMAND_QRY
(
USR IN VARCHAR2
, OUT_CLOB OUT CLOB
) AS
BEGIN
SELECT to_clob(XMLElement("DEMANDS",XMLAgg(XMLElement("Demand"
,XMLElement("DemandId",dmnd_id)
,XMLElement("CreatedBy",CREATED_BY)
,XMLElement("CreatedDate",CREATED_DATE)
,XMLElement("Designation",DESIGNATION)
,XMLElement("Experience",EXPERIENCE)
,XMLElement("PrimarySkill",PRIMARY_SKILL)
,XMLElement("SecondarySkill",SECONDARY_SKILL)
,XMLElement("OtherSkill",OTHER_SKILL)
,XMLElement("RequiredDate",REQUIRED_DATE)
,XMLElement("ProbablePercentage",PROBABLE_PERCENTAGE)
,XMLElement("CriticalFlag",CRITICAL_FLG)
,XMLElement("AssignedFlag",ASSIGNED_FLG)
,XMLElement("AccountName",ACCOUNT_NAME)
,XMLElement("OpportunityName",OPTY_NAME)
,XMLElement("AccountPOC",ACCNT_POC)
,XMLElement("COE",COE)
,XMLElement("DemandType",DEMAND_TYPE)
,XMLElement("Location",LOC)
,XMLElement("ExpectedRole",EXPECTED_ROLE)
,XMLElement("ConfidenceFactor",CONFIDENCE_FACTOR)
,XMLElement("EndDate",END_DT)
,XMLElement("HiringSO",HIRING_SO)
,XMLElement("HiringSOId",HIRING_SO_ID)
,XMLElement("Comments",COMMENTS)
))))
into OUT_CLOB
from demand s
where s.CREATED_BY=usr;
--DBMS_output.put_line(OUT_CLOB);
END SP_DEMAND_QRY;
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
oracle ×8
php ×4
odp.net ×3
codeigniter ×2
c# ×1
java ×1
java-7 ×1
javascript ×1
jce ×1
oracle-apex ×1
plsql ×1
sql ×1