Talend - 从.txt读取SQL并将变量传递给它

时间:2017-07-21 20:09:57

标签: sql talend

我需要读取Excel文件并为Excel的每一行执行不同的SQL查询(Oracle),具体取决于表的列(“tipo”)所具有的值。此外,我需要将变量传递给来自同一个Excel的其他列的SQL查询。

我用tjava完成了这个,创建了一个生成de query的字符串..像这样(简化):

String var1 = input_row.var1;
String var2 = input_row.var2;
String sql_query = ""

if (tipo.toString().equals(String.valueOf("Option1"))) {
query_ev = "select " + var1 + " as variable1, " + var2 + " as var 2 from dual";}

if (tipo.toString().equals(String.valueOf("Option2"))) {
query_ev = "select " + var1+ " from dual";}

context.sql = sql_query;

尽管如此,我的“问题”是我的查询很长,而且这个方法只允许我将它们放在tjava中而不包括换行符,所以很难编辑它们,因为它们仍然是“一行查询”在tjava。

有没有办法实现相同但查询格式化? 例如,对于具有此

的Option1
select " + var1 + " as variable1, " + var2 + " as var 2 
from dual
where 
 ...

我很感激任何线索。

1 个答案:

答案 0 :(得分:0)

试试这个:

import UIKit

class ViewController: UIViewController , UITableViewDelegate, UITableViewDataSource{

    @IBOutlet var proTable: UITableView!
    var pcMgr: Array = [] // Or whatever your array is!

    override func viewDidLoad() {
        super.viewDidLoad()
        proTable.reloadData()
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        1
}
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
        return pcMgr.pros.count
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
        let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "Default Pros")

        cell.textLabel?.text = pcMgr.pros[indexPath.row].name

        return cell
    }

    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath){
        if (editingStyle == UITableViewCellEditingStyle.delete){

            pcMgr.pros.remove(at: indexPath.row)
            proTable.reloadData()
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

我现在没有Java来验证,但我认为这种方法可以帮助格式化。只要检查一下你是否有足够的空间 - 不要这样做

query_ev = "select " " + var1 + " as variable1, " + var2 + " as var 2 "+ from dual";

会导致像

这样的SQL

"as var 2"+"from dual"