【发布时间】:2022-07-21 04:55:42
【问题描述】:
我正在尝试通过我的 NestJS api 运行 Oracle 存储过程。我一直在关注 NestJS 数据库文档,但它并没有专门为您提供有关调用存储过程所需的语法的任何帮助。存储过程的位置也有点奇怪,你必须进入数据库,进入其他用户,然后进入用户,然后进入该用户的过程文件夹,然后我可以访问我需要的过程(见下图) .
当我尝试在数据库中运行该过程时,它显示它需要 startTime 和 endTime 作为参数,当我将鼠标悬停时它给了我格式,这是我通过我的服务传递的。
这是我的 app.module:
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: ['.env.development.local'],
isGlobal: true
}),
TypeOrmModule.forRoot({
type: 'oracle',
host: process.env.OMSRECON_DB_HOST,
port: parseInt(process.env.OMSRECON_DB_PORT),
username: 'FAKE_USER',
password: 'FAKE_PASSWORD',
database: process.env.OMSRECON_DB_DATABASE,
sid: process.env.OMSRECON_DB_SID,
entities: [OmsReconData],
synchronize: false
}),
CustomerOutagesModule,
UserModule,
SystemStatusesModule,
SystemIncidentsModule
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
这是我的服务模块:
@Module({
imports: [
TypeOrmModule.forFeature([OmsReconData])
],
controllers: [CustomerOutagesController],
providers: [CustomerOutagesService]
})
export class CustomerOutagesModule {}
这是我的 service.ts:
@Injectable()
export class CustomerOutagesService {
constructor(
@InjectRepository(OmsReconData)
private omsReconRepository: Repository<OmsReconData>
) {}
async getOmsRecondData(startDate: string, endDate: string) {
const result = await this.omsReconRepository.query(
`EXEC OMS_RECON.GET_OMS_RECON_DATA @START_TIME=${startDate} @END_TIME=${endDate}`,
);
console.log(result);
return result;
}
}
我真的只需要弄清楚运行存储过程需要什么语法以及如何访问其他用户存储过程?提前感谢您的帮助。
【问题讨论】:
标签: javascript oracle stored-procedures nestjs typeorm