我最近一直在处理一些性能问题,并试图找出如何以指数方式提高某些Oracle数据库调用的性能.
技术:
我熟悉DataTableDapper和SQL Server 的使用和表值参数,并希望使用上述技术复制它.我还没有能够重现下面的解决方案来使用Devart和OracleManaged:
下面的代码不是我正在运行的......这是一个释义的例子.我只需要与Oracle一起工作的东西来传递DataTable或在查询/插入中使用的对象数组.
SQL Server:
CREATE TYPE MyCustomerInfo AS TABLE
(
Id BIGINT NOT NULL,
--Name NVARCHAR(32) NOT NULL,
--...
);
Run Code Online (Sandbox Code Playgroud)
C#for SQL Server:
const string getCustomersSql = @"
SELECT
c.Id,
--c.Name
--...
FROM @myCustomers mc
LEFT JOIN Customers c
ON c.Id = mc.Id";
var myCustomers = new DataTable();
myCustomers.Columns.Add("Id", typeof(long));
//...
myCustomers.Rows.Add(1);
myCustomers.Rows.Add(2);
var customers = await sqlDbConnection.QueryAsync<Customer>(getCustomersSql, new { myCustomers = myCustomers.AsTableValuedParameter("MyCustomerInfo") }); …Run Code Online (Sandbox Code Playgroud) 嘿,我真的想弄清楚如何连接到远程Oracle测试数据库,我没有Java经验.所以,如果我能得到你的帮助,我将永远感激不尽.
我有一个远程测试数据库,我正在尝试连接到,我有一个旧样式SID的jdbc连接.根据这个链接:https://github.com/oracle/node-oracledb/blob/master/doc/api.md#notjdbc,我应该创建一个tnsnames.ora文件来连接,就像这样:
tnsnames.ora中:
appDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
(CONNECT_DATA =
(SID = ORCL)
)
)
Run Code Online (Sandbox Code Playgroud)
然后我应该在我的节点server.js文件中引用它,就像这样
server.js:
const oracledb = require('oracledb');
oracledb.getConnection(
{
user : process.env.ORACLE_USER,
password : process.env.ORACLE_PASSWORD,
connectString : "appDB"
},
function(err, connection)
{
if (err) {
console.error(err.message);
return;
}
connection.execute(
"SELECT * " +
"FROM BOS_course",
function(err, result)
{
if (err) {
console.error(err.message);
doRelease(connection);
return;
}
console.log(result.rows);
doRelease(connection);
});
});
module.exports = {
oracledb
}; …Run Code Online (Sandbox Code Playgroud)