- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
有问题的应用程序在 Coldfusion 11
上运行,带有 hotfix 7
,并在连接到 Windows 的
。目标是让应用程序在 Linux
服务器上运行甲骨文数据库Linux
上运行,这是一个逐步的过程(这就是为什么数据库在 Windows 服务器
上)。
我知道数据库可以正常工作,因为它通过 Coldfusion
管理员面板成功连接,并且此 SQL
语句成功返回 user_id
:
<cfquery name="qUser" datasource="#Application.datasource#">
SELECT td_user_id
FROM td_user
WHERE ROWNUM <= 1
</cfquery>
有问题的代码是这样的:
<cfstoredproc procedure="td_session_pkg.new_session" datasource="#application.datasource#">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" value="#arguments.username#">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" value="#arguments.password#">
<cfprocparam type="In" cfsqltype="CF_SQL_CHAR" value="#cgi.remote_addr#">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" value="#rand_int#">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" value="#application.app_id#">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" value="1">
<cfprocparam type="In" cfsqltype="CF_SQL_INTEGER" value="#pwdRequired#">
<cfprocparam type="Out" cfsqltype="CF_SQL_CHAR" variable="sid">
</cfstoredproc>
<!--- Test --->
<cfquery name="testS" datasource="#Application.datasource#">
SELECT
sys_context('USERENV','SID') AS theSid
FROM dual
</cfquery>
<cfthrow message="SID: #sid# and #testS.theSid#">
cfthrow
返回
SID: (blank here) and 37
我已经尝试了很多东西,但还没有正确返回 sid
(继续用户身份验证需要它)。 cfprocparam
标签中的值是上面提到的变量,并且都具有有效值。
关于为什么这不会返回 sid
以及为什么 SQL
语句会返回的任何见解? (根据我的研究,我相信它们是同一回事)。
感谢您的帮助,我会尽快回答任何问题。
最佳答案
由于我在评论中发布的代码有空格:
SET SERVEROUTPUT ON;
DECLARE
sid VARCHAR2(20);
BEGIN
td_session_pkg.new_session(
'username',
'password',
'remote_addr',
0,
0,
1,
0,
sid
);
DBMS_OUTPUT.PUT_LINE( 'SID' || sid );
END;
/
在您将通过 ColdFusion 连接到的用户的 SQL 客户端(即 SQL 开发人员或 SQL/Plus)中运行它。
目的是测试数据库:
成功运行查询会告诉您#1-#3 没问题,您可以根据您的预期检查#4。
如果有任何不符合预期,那么您就知道问题出在数据库端,而不是在 ColdFusion 中。
如果它们按预期运行,那么您可以开始查看 CF 设置以确保您的数据源指向您期望的位置(即它们是否连接到正确的用户)并且数据源具有执行程序的权限。
然后如果一切正确,请查看您传递给 <CFSTOREDPROC>
的变量和 <CFPROCPARAM>
标签 - 是预期的数据源和变量。
如果您想在进行时将其形式化,那么您可以编写单元和集成测试,其中涵盖您尝试的步骤,下次您想要测试的时候,您只需运行测试套件。
关于sql - 连接到 oracle 数据库的 cfprocparam 未返回 sid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37604016/
这必须从远程机器获得。以下查询不适用于 SID,但适用于组和帐户名称。 "SELECT GroupComponent FROM Win32_GroupUser WHERE PartComponent
我必须更改特定数据库 (SID) 的时区。我有数据库服务器的地方配置并安装了多个数据库(SID)。当我连接特定 SID 并在查询下面运行时: alter database set time_zone=
我正在使用 Twilio Rest API 通过向 /2010-04-01/Accounts/{AccountSid}/Calls/{ParticipantCallSid} 发送请求来获取有关使用参与
我正在使用 Windows 事件目录环境。 SID 是域 ID 和 RID 的组合。 我发现一个域最多可以有 2^32 个 RID。但是,域 ID 甚至可以超过 32 位。此外,域 ID 似乎仅在森林
我正在学习,但不知道如何让下面的代码在远程计算机上运行。 我想检索远程计算机上特定用户的 SID 下面的代码片段用于检索本地计算机上登录用户的 SID。我正在寻找一种方法来使用它来查找远程系统的特定
我正在阅读Learn Vim Script the Hard Way在练习将折叠函数转换为本地脚本函数时遇到了一些让我困惑的事情。 我尝试这样做: setlocal foldexpr=GetPotio
我正在尝试使用 C++ 在 Windows 上获取计算机的主域 SID。我已经使用 LsaQueryInformationPolicy 和 PolicyPrimaryDomainInformation
我正在使用下面的代码来检索进程所有者的 SID,这里一切正常,但我如何才能可能至少检索任何(最多每个)进程所有者所属的成员资格 SID? PSID g_pSID; BOOL GetCurrentPro
我无法让我的 SID 工作...... page 2';?> 没有显示 SID 号,但 session_id 正在工作,不确定我是否遗漏了什么。谢谢 最佳答案 如果一个名为 session.name
在 Windows 操作系统中,用户 SID 用字符串表示,例如: S-5-1-76-1812374880-3438888550-261701130-6117 有什么方法可以确定这样的字符串是有效的用
我遇到一个问题,即用户 X(非管理员用户)运行提升的程序,在获取和查询与当前进程关联的 token 时检索到错误的 SID 信息。 我在这里的主要限制是我必须使用 winXP 兼容代码,所以 WSTx
我正在运行安装了以下蓝牙相关软件包的 Debian Sid: blueman 2.0.4-1 bluetooth 5.43-1 bluez 5.43-1 bluez-firmware 1.2-3 fi
我想在两个 sql server 实例上创建多个数据库用户。为了能够轻松地将数据库从一个实例复制到另一个实例,我希望 SID 保持一致。 我的想法是使用可预测的 SID,以最大程度地减少维护痛苦。我梦
我的 Delphi 2010 应用程序需要将 Windows 用户添加到本地管理员组。我使用 NetLocalGroupAddMembers 使这部分工作。 现在应用程序需要在具有其他语言的 Wind
我已按照此处的教程进行操作 https://www.twilio.com/docs/quickstart/client/javascript这将进行出站调用。 我将如何收集出站段的 Call SID?
我正在使用 strope 和 jquery 构建一个基于 Web 的客户端,并使用 openfire 作为服务器。几乎一切都正常,我可以获取花名册列表,发送和接收消息,但是当我尝试将我的状态从可用更改
我正在编写一个程序来枚举进程,我想找出指定进程正在其下运行的 SID/用户 ID 和 session (即我有一个 PID/句柄处理,我想要它正在运行的 SID 和 session )。有什么线索吗?
我们正在使用 FileNet 5.1,而其他一些团队不小心从产品中删除了一个名为“ABC”的组。现在应用了“ABC”的文档现在有了 SID。我们现在已经创建了一个同名的组并确定了受影响的 GUID。我
我正在尝试实现 Twilio swift 快速启动应用程序,无论如何我想在 iOS 和 Android 平台上配置应用程序, 我到达了 iOS tutorial 中的第 8 步 我有一个新的 PUSH
问题:我想通过SID获取本地windows用户: 我找到了这段代码 [ADSI]("WinNT://$Env:Computername/") 在这里: http://www.eggheadcafe.c
我是一名优秀的程序员,十分优秀!